Анализ дампов ядра с использованием gdb - PullRequest
9 голосов
/ 01 февраля 2010

У меня есть пара вопросов относительно дампов ядра. У меня есть GDB на Windows, используя Cygwin.

  1. Каково расположение файла дампа ядра? Это файл a.exe.stackdump? (Это единственный файл, сгенерированный после сбоя) Я читал на других форумах, что файл дампа ядра называется «core». Но я не вижу ни одного файла с именем "core".

  2. Что такое команда для открытия и понимания файла дампа ядра?

Ответы [ 2 ]

12 голосов
/ 01 февраля 2010
  1. Вам необходимо настроить Cygwin для создания дампов ядра, включая

    error_start=x:\path\to\dumper.exe

    в вашей переменной окружения CYGWIN (см. здесь в разделе "dumper" для получения дополнительной информации). Если вы этого не сделали, вы получите только трассировку стека, что также может помочь вам в диагностике проблемы.

  2. Запустите gdb следующим образом, чтобы прикрепить его к файлу дампа ядра:

    gdb myexecutable --core=mycorefile

    Теперь вы можете использовать обычные команды GDB, чтобы напечатать трассировку стека, проверить значения переменных и т. Д.

2 голосов
/ 01 февраля 2010
  1. Да, cygwin по умолчанию создает a.exe.stackdump файлы. Вам также нужно настроить его на создание core с (ответ Мартина охватывает это).
  2. Простое руководство по отладке дампа ядра можно найти здесь
...