Видите инструкции, выполняемые скомпилированным кодом?

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


person rfariasc    schedule 09.04.2015    source источник
comment
Не могли бы вы уточнить вопрос? Вы хотите просмотреть текущую выполняемую инструкцию? На ПК или на микроконтроллере?   -  person Mikhail Maltsev    schedule 09.04.2015
comment
Я хочу просмотреть на ПК инструкции программы, выполняемой на ПК. Спасибо за ваш интерес   -  person rfariasc    schedule 09.04.2015


Ответы (1)


(Программный) инструмент, который вы ищете, называется отладчиком. Он может выполнять пошаговое выполнение программы, проверять память, создавать дампы регистров и т. д. IAR выпускает коммерческие отладчики, но существуют и другие. Коммерческий продукт Microsoft, Visual Studio, имеет встроенный отладчик, а на стороне свободного/открытого исходного кода вы можете использовать GNU GDB, который довольно популярен и может работать в большинстве операционных систем:

https://www.gnu.org/software/gdb/

Чтобы отладчик был наиболее эффективным, ваш код должен быть скомпилирован с включенными символами отладки, что поможет отладчику дать вам имена функций и переменных, если ваш исходный код был написан на языке высокого уровня.

Надеюсь это поможет!

person Nur Hussein    schedule 09.04.2015
comment
Привет !, спасибо за ваш ответ. Я знаю о существовании отладчиков и иногда использовал dgb, но я думал, что-то для просмотра выполненных инструкций и памяти, измененной уже скомпилированной программой (без символов отладки). Возможно ли, чтобы GDB позволял мне видеть информацию, хранящуюся (и измененную) в памяти, или просматривать инструкции, выполняемые программой, скомпилированной без отладочных символов? - person rfariasc; 09.04.2015
comment
Да, это возможно: используйте команду дизассемблирования для просмотра инструкций. В режиме TUI (sourceware.org/gdb/onlinedocs/gdb/ Также доступно окно разборки TUI-Keys.html#TUI-Keys). Как всегда, вы можете просмотреть память с помощью команды x: sourceware.org/gdb/onlinedocs /gdb/Память.html#Память - person Mikhail Maltsev; 09.04.2015