Как я могу интерпретировать a.файл stackdump?
этот вопрос, вероятно, повторение использование stackdump из исполняемого файла Cygwin
3 ответов
Это общая проблема для многих парней; и обычно они скажут вам использовать gdb. Однако это не всегда разумный ответ. Вы не должны повторно компилировать его, так как не гарантируется, что новая сборка имеет те же адреса символов, что и разбитая. Есть несколько инструментов, которые могут быть полезны: objdump, addr2line и т. д. Вы можете сделать "objdump -д -ы строить.out > build.Расм.txt", а затем выполните поиск адресов этих функций среди текста. Addr2line также является хорошим выбором для идентификации тех функции. Если вы собираетесь часто справляться с такими проблемами сбоев, рекомендуется написать инструмент-скрипт, чтобы помочь вашей работе.
удачи.
вы можете использовать адреса "функции" в качестве аргументов для addr2line
.
addr2line -f -C -e main.exe 0xADD4355
фильтруйте его с помощью awk и трубы во всех адресах:
awk '/^[0-9]/{print }' main.exe.stackdump | addr2line -f -C -e main.exe
если вы видите ??
вместо имен функций вам нужно будет перестроить символы отладки (-g
, -ggdb3
, ...
)
другой способ найти проблемную строку - использовать gdb в вашем двоичном файле.
Поэтому сначала запустите gdb:
gdb main.exe
внутри запуска gdb:
info line *0xADD4355