Я компилирую такой код с помощью GCC (v7.1.0) (командная строка ниже).
int func() { return 0x1234; } int main() { func(); return 0; }
gcc . 01_simpleMain.c -O0 -m64 -g
После компиляции запускаю WinDbg (10.0), открываю исполняемый файл (Ctrl+E), программа загружается. Точка останова попадает в процесс запуска, все в порядке. После этого я хочу открыть исходный код (Ctrl+O) и попытаться поставить точку останова внутри метода func.
WinDlg говорит мне:
*** ОШИБКА: Загрузка модуля завершена, но не удалось загрузить символы для G:ExamplesGcca.exe
Почему это не работает? Должен ли я изменить параметр компиляции? МОЙ процессор AMD64
Попробуйте использовать gdb (если доступно) — person Jacek schedule 09.06.2017
Clang имеет режим совместимости с Microsoft, который передает отладочную информацию в стиле CodeView в объектные файлы. Если вы затем свяжете их с помощью Microsoft link.exe, у вас будут PDB, необходимые для WinDBG и других отладчиков Windows. Обратите внимание, однако, что режим совместимости Microsoft имеет и другие эффекты. clang.llvm.org/docs/MSVCCompatibility.html — person Jacek schedule 09.06.2017
Источник: