Как вы проверяете файлы ядра в dbx?

Я работаю над AIX, и у меня постоянно происходит сбой процесса. Я никогда не проверял основные файлы и хотел бы получить некоторые рекомендации, если это возможно. Я использую дбкс. Как я могу (а) убедиться, что основной файл идет туда, куда я хочу, и (б) увидеть состояние процесса до его сбоя?

Спасибо!


person ctote    schedule 11.02.2011    source источник


Ответы (2)


Я нормально выполняю прогон, но также не уверен в отладке ядра. Я обнаружил, что эти команды, вероятно, являются теми, на которых следует сосредоточиться. Есть, вероятно, больше.

Как только ваше ядро ​​​​работает в dbx:

  1. 'где' -- чтобы показать стек
  2. «вверх» или «вниз» — для перемещения по кадрам, а затем
  3. 'print var' -- показать переменные
  4. и «список» или «редактировать» — отобразит информацию о файле в этом текущем местоположении.

Мне помог поиск здесь в разделе "Изучение данных".

person JacquelineIO    schedule 07.02.2012

файлы ядра создаются в текущем рабочем каталоге процесса. Проверить с помощью getcwd(), установить с помощью chdir().

dbx [ -a ProcessID ] [ -B DebugFile ] [ -c CommandFile ] [ -I Directory ] [ -E DebugEnvironment ] [ -p oldpath=newpath:...| pathfile] [-u] [-F] [-r] [-x] [-v] [-C CoreFile | Объектный файл [CoreFile]]

Загрузите вашу программу в dbx с помощью dbx /path/to/progname /path/to/corefile, и вы можете начать просматривать трассировку стека (команда "где" и т. д.).

Если вы не укажете, corefile dbx автоматически загрузит соответствующий файл с именем «core», если он находится в том же каталоге, что и загруженная программа (и они совпадают по сигнатурам).

Прочитайте справочная страница по dbx содержит все необходимые команды отладки.

Также обратите внимание, что ваша программа должна быть скомпилирована с включенными символами отладки (а не позже «разделенными»), чтобы трассировка стека была наиболее полезной. Без символов отладки вы увидите имена функций в трассировке стека, но не более того.

person CoreyStup    schedule 12.02.2011