Здравствуйте! Подскажите, пожалуйста, как дизассемблировать код в codeblocks?
Ответ
Дебагер (gdb 8.0) из текущей поставки mingw-w64 (который i686-7.1.0-release-posix-dwarf-rt_v5-rev2.7z) при отладке С++ кода у меня зависает (при отладке С такого не наблюдается), возможно и у вас такая же проблема и поэтому окно Disassembly пустое.
Попробуйте поставить рядом более старую версию mingw-w64 и указать в настройках CodeBlocks чтобы он использовал gdb из той сборки.
Зайдите в настройки дебагера (Меню - Settings - Debugger), создайте новую конфигурацию (GDB/CDB Debugger - Create config) и укажите путь к нужному gdb.exe:
Так же, CodeBlocks может выводить ассемблерный код в двух форматах AT&T и Intel. Это настраивается тут же, в свойствах дебагера - Choose diassembly flavor (GDB only)
После того, как вы добавили новый дебагер, вы можете переключаться между ними через Меню - Debug - Active debuggers
Инструкция о том, как увидеть ассемблерный код:
В качестве Build target выбрать Debug: Меню - Build - Select target - Debug
Сделать Rebuild проекта: Меню - Build - Rebuild (Ctrl+F11)
Если проект собрался успешно, поставить брекпоинт на строке кода и запустить отладку: Меню - Debug - Start /Continue (F8)
После этого запустится дебагер и остановится на вашем брекпоинте. В этот момент и можно посмотреть дизассемблированный код: Меню - Debug - Debugging windows - Disassembly
При этом, в логе на вкладке Debugger, будут примерно вот такие строчки:
Starting debugger: C:\dev\mingw-w64_5.3.0\bin\gdb.exe -nx -fullname -quiet -args B:/test/bin/Debug/test.exe
done
Registered new type: wxString
Registered new type: STL String
Registered new type: STL Vector
Setting breakpoints
Debugger name and version: GNU gdb (GDB) 7.10.1
Child process PID: 4044
At B:\test\main.cpp:7
Комментариев нет:
Отправить комментарий