Каков принцип отладки? - программирование

Каков принцип отладки?

Я изучил программирование на пару лет и часто использовал debug. Но я до сих пор не понимаю принцип основного отладки, как это работает? Как реализуется функция отладки строки (шаг в)?

возьмем Java-язык.

Что делает процессор для отладки реализации?

что делает JVM для выполнения отладки?

что делает eclipse для реализации отладки?

Возможно, три элемента, перечисленных выше, не имеют ничего общего с debug. Я только догадывался об этом. Я искал в течение некоторого времени и не получил ничего полезного для меня (конечно, сама отладка сложна), я надеюсь, что более простая интерпретация.

Спасибо.

4b9b3361

Ответ 1

Каждый процессор имеет свой собственный механизм отладки.

В случае процессора x86 процессор имеет 6 регистров отладки, которые хранят отладочные точки и условия прерывания. Кратко рассмотрим эту статью для механизма отладки процессора Intel x86: http://en.wikipedia.org/wiki/X86_debug_register

В случае механизма отладки Java см. http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html, как указал Mukul Goel в потоке комментариев в вопросе.

Ответ 2

Чтобы облегчить отладку (используя точки останова и т.д.), компилятор вставляет некоторую дополнительную информацию в полученный им результат выполнения (т.е. двоичный файл или файл байт-кода JVM в случае Java). Эта дополнительная информация позволяет отображать каждую строку скомпилированного вывода в соответствующий исходный файл.

Я не ответил на все части вашего вопроса, но, надеюсь, достаточно, чтобы помочь вам начать работу. Проверьте эти ресурсы:

http://en.wikipedia.org/wiki/Debug_symbol

Как работает отладчик?