В лаборатории моего университета мы используем программу под названием IAR, которая позволяет нам видеть, что каждая инструкция (в ассемблере) выполняется конкретным кодом, но в этом случае мы знаем код программы, поэтому мне было интересно, существуют ли любой инструмент или метод для просмотра обработанных инструкций или изменения памяти в программе, в частности, возможно?См. Инструкции, выполняемые скомпилированным кодом?
ответ
Инструмент (программное обеспечение), который вы ищете, называется отладчиком. Он может выполнять выполнение программы, проверять память, записывать дампы и т. Д. IAR создает коммерческие отладчики, но другие существуют. коммерческий продукт Microsoft, Visual Studio, имеет отладчик, встроенный в него, и на свободной/стороне с открытым исходным кодом вы можете использовать GNU GDB, который является довольно популярным и может работать на большинстве операционных систем:
https://www.gnu.org/software/gdb/
Для отладчик должен быть наиболее эффективным, ваш код должен быть скомпилирован с помощью символов отладки, что помогает отладчику дать вам имена функций и переменных, если ваш исходный код был написан на языке высокого уровня.
Надеюсь, это поможет!
Привет !, спасибо за ваш ответ. Я знаю о существовании отладчиков, и я иногда использовал dgb, но я думал, что-то, чтобы просмотреть выполненные инструкции, и память изменилась с помощью уже скомпилированной программы (без «отладочных символов на»). Возможно, GDB позволяет мне видеть информацию, хранящуюся (и измененную) в памяти, или просматривать инструкции, выполняемые программой, скомпилированной без символов отладки? – rfariasc
Да, это возможно: используйте команду «дизассемблировать» для просмотра инструкций. В режиме TUI (https://sourceware.org/gdb/onlinedocs/gdb/TUI-Keys.html#TUI-Keys) также доступно окно разборки. Как всегда, вы можете просматривать память с помощью команды «x»: https://sourceware.org/gdb/onlinedocs/gdb/Memory.html#Memory –
- 1. Пакет Python с скомпилированным кодом
- 2. В чем разница между заранее скомпилированным кодом и изначально скомпилированным кодом
- 3. Play framework работает с предыдущим скомпилированным кодом
- 4. Как проверить связь между скомпилированным кодом Java?
- 5. Как можно увидеть инструкции SQL, выполняемые jOOQ?
- 6. В чем разница между объектным кодом, скомпилированным кодом и машинным кодом
- 7. Как связать объектный файл с исполняемым/скомпилированным двоичным кодом?
- 8. Новые dll не используются с предварительно скомпилированным кодом, используя NGen
- 9. Как скомпилировать и связать код C++ с скомпилированным кодом C?
- 10. Является ли JVM когда-либо перекомпилированным скомпилированным кодом?
- 11. Как распечатать операторы mysql, выполненные/выполняемые в инструкции в django?
- 12. Есть ли способ распечатать все инструкции SQL, выполняемые JDBC?
- 13. Если инструкции для генерируемых кодом кнопок, Swift
- 14. Proguard вернулся с кодом ошибки 1. См консоль java.io.IOException
- 15. Proguard вернулся с кодом ошибки 127. См консоли
- 16. Proguard - Proguard возвращен с кодом ошибки 1. См. Console
- 17. MobileFirst Proguard возвращен с кодом ошибки 1. См. Console java.lang.ClassCastException
- 18. Android - Proguard возвращен с кодом ошибки 1. См. Консоль
- 19. "Управляется СМ" Какой смысл СМ
- 20. Неопределенный символ с скомпилированным пакетом
- 21. Выполнение скомпилированного кода скомпилированным компилятором
- 22. Приложение Foxx кажется не скомпилированным
- 23. Является ли D статически скомпилированным?
- 24. System.NotSupportedException С скомпилированным запросом LINQ
- 25. Замена Activator.CreateInstance с скомпилированным lambda
- 26. Получение инструкций адрес, указанный указателем инструкции
- 27. ошибки, выполняемые sh сценарий
- 28. Угловые всегда выполняемые проверки
- 29. Другие выполняемые запросы - Mysql
- 30. Ошибки, выполняемые гравийными приложениями
Не могли бы вы пояснить вопрос? Вы хотите просмотреть текущую инструкцию? На ПК или на микроконтроллере? –
Я хочу просмотреть инструкции на ПК программы, выполняемой на ПК. Спасибо за ваш insterest – rfariasc