Al hacer clic en una línea para establecer un punto de interrupción, Firebug registra la URL del archivo y el número de línea en caso de que vuelva a cargar la página. A continuación, busca la URL/línea en sus estructuras de datos internas para decidir qué función de Javascript (llamada 'script' en Mozilla) quiere establecer como punto de corte. Luego llama a una función de la plataforma Mozilla para mapear el número de línea a un contador de programa relativo al inicio de la función. Finalmente llama a la plataforma para establecer un punto de interrupción en el contador del programa.
Volver al activar el panel Script, Firebug devoluciones de llamada registrado en la plataforma. Uno de ellos, onBreak, maneja puntos de interrupción. A medida que la plataforma ejecuta el código JS, comprueba sus estructuras internas para ver si el contador del programa actual tiene un conjunto de puntos de corte. Si es así, detiene la ejecución de JS y llama a firebug.
Firebug examina el punto de interrupción para decidir si se trata de un punto de interrupción condicional, si tiene los datos correctos para admitir la interfaz de usuario del depurador en este punto de interrupción, y así sucesivamente. Si las condiciones son buenas, le dice a la plataforma que suspenda la depuración, la ejecución de JavaScript para la página web y los eventos de la plataforma para la página web. Luego muestra el archivo de origen para el punto de interrupción y resalta la línea. Si las condiciones no son buenas, simplemente continúa.
Las piezas complejas vienen cuando la plataforma no hace ningún apoyo número de línea correcta de programa de mapeo mostrador. Por ejemplo, Firebug tiene un montón de código para tratar con eval() y los manejadores de eventos generados por el navegador.
Preguntas como éstas son mejores en el grupo de noticias Firebug en mi opinión.
¿Y también cómo modifica las páginas web para que resalte los elementos cuando el cursor se cierne sobre ellas? – djondal