Как я могу увидеть трассировку стека после завершения процесса? - PullRequest
7 голосов
/ 01 декабря 2010

я использую команду gdb "attach" для отладки процесса но после сбоя процесса (sigkill) я не вижу трассировки стека (команда "bt" в gdb): (GDB) Bt Нет стека.

как я могу увидеть трассировку стека после завершения процесса?

1 Ответ

7 голосов
/ 01 декабря 2010

Настройте вашу оболочку для дампа ядра, убедившись, что ulimit -c не показывает размер ядра 0. Если он говорит 0, тогда запустите ulimit -c unlimited.Затем, перезапустите вашу программу, пока она не выйдет из строя и не сбросит ядро, затем вызовите:

gdb /path/to/executable /path/to/core и наберите bt, чтобы получить трассировку стека.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...