исходные строки при отладке дампа ядра - PullRequest
1 голос
/ 02 апреля 2012

В c или c ++ При отладке дампа ядра, т. Е. Если у нас остался файл coredump и мы пытаемся отладить его с помощью этого файла ядра, мы можем увидеть последние несколько строк кода перед тем, как произошел дамп.трассировка стека показывает только вызов функции.

, например, во время отладки запущенного процесса в списке dbx или gdb команда

list Display lines of a source file

даст часть кодав данный момент выполняется. Таким же образом, у нас есть опция, когда мы просматриваем дамп ядра?Я работаю над Солярис MDB

Ответы [ 3 ]

2 голосов
/ 02 апреля 2012

Команда list в gdb должна предоставлять подробную информацию о номерах строк исходного кода и соответствующем листинге исходного кода из основного файла, если:

  • Исполняемый файл был скомпилирован с включенными символами отладки (например, -g в gcc и g ++)
  • Доступна неисчерпаемая версия исполняемого файла (т. Е. Не была удалена отладочная информация при запуске strip)
  • Отладчик может найти соответствующие исходные файлы

Отладчик должен по-прежнему иметь возможность предоставлять номера файлов и строк, даже если он не может найти исходные файлы, поскольку информация о номере строки составляет часть символов отладки. Эта информация должна быть доступна с помощью команды bt (backtrace), а также команды info symbol.

Обратите внимание, что даже если файл ядра был сгенерирован из удаленного исполняемого файла, при условии, что у вас есть доступ к неснятой версии, вы можете загрузить его в gdb, а также указать файл ядра.

Взгляните на главы 13 и 15 руководства по gdb , чтобы помочь предоставить gdb доступ к вашим исходным файлам.

0 голосов
/ 02 апреля 2012

Если вы правильно установили исходный путь с помощью команды use в dbx или запустили его с опцией -I, то вряд ли будет какая-либо разница между отладкой дампа ядра и обычным процессом, когда дело доходит до чтения строк исходного кода.

0 голосов
/ 02 апреля 2012

Если вы скомпилировали с опцией -g, вы можете отобразить исходные строки.В dbx вы можете использовать команду use для установки исходных каталогов dbx.

Вы можете использовать команду list (l) для отображения строк источника.

См. Команду help, чтобы узнать, какиспользовать команды dbx и gdb.

...