2013-06-25 4 views
0

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

У меня был файл дампа ядра, загруженный в gdb, и переключился на определенный кадр (команда: frame #), но я не уверен, что можно захватить значения переменных без его фактического запуска.

Некоторое время, отлаживая какое-то состояние гонки, которое вызывает seg-ошибку и очень сложно воссоздать. Запуск в gdb не помогает воспроизвести слишком много. Поэтому мой лучший шанс был бы каким-то образом выяснить, какие состояния переменных основаны на основном файле, который у меня есть.

+0

'info locals' должен это сделать. –

+0

FYI ... когда я попытался напечатать в этом случае, gdb жалуется, что программа не запускается. –

+0

Возможно, у вас плохо написанный довольно принтер, который делает плохой звонок во время печати. Попробуйте отключить симпатичные принтеры перед использованием «инфо-локалей» –

ответ

1

Если кто-то ищет ответ, это всегда срабатывает для меня.

Переход к конкретному кадру p следует имя переменного

Пример:

(gdb) frame 6 
#6 0x080f613d in add (add=0x8e5ae40) at main.c:6128** 
6128   INSIST((error == 0) || (error == ENOENT)); 
(gdb) p error 
$15 = 22 
(gdb) 

Надеется, что это помогает!