LINUX.ORG.RU

История изменений

Исправление sigurd, (текущая версия) :

Я новичок в отладки. Можете дать пошаговую инструкцию?

Последовательность примерно такая:

  1. включаем создание core ulimit -c unlimited
  2. запускаем свою прогу - она упадет с сообщением Segmentation fault (core dumped) и создаст файл core-NNNN, где NNNN - номер процесса.
  3. запускаем gdb для посмертного анализа gdb proga core-NNNN
  4. gdb покажет в каком месте упало, выдать команду bt - покажет цепочку вызовов функций. Обычно этого достаточно, чтобы понять в каком месте падает. Можно командой p var-name узнать значение var-name в момент падения.
  5. Segmentation fault бывает, если указатели неправильно инициализированы или вообще не инициализированы. Но это уже скорее отсутствие проверок в коде библиотеки.

Исправление sigurd, :

Я новичок в отладки. Можете дать пошаговую инструкцию?

Последовательность примерно такая:

  1. включаем создание core ulimit -c unlimited
  2. запускаем свою прогу - она упадет с сообщением Segmentation fault (core dumped) и создаст файл core-NNNN, где NNNN - номер процесса.
  3. запускаем gdb для посмертного анализа gdb proga core-NNNN
  4. gdb покажет в каком месте упало, выдать команду bt - покажет цепочку вызовов функций. Обычно этого достаточно, чтобы понять в каком месте падает. Можно командой p var-name узнать значение var-name в момент падения.
  5. Segmentation fault бывает, если указатели неправильно инициализированы или вообще не инициализированы. Но это уже скорее отсутствие поверок в коде библиотеки.

Исправление sigurd, :

Я новичок в отладки. Можете дать пошаговую инструкцию?

Последовательность примерно такая:

  1. включаем создание core ulimit -c unlimited
  2. запускаем свою прогу - она упадет с сообщением Segmentation fault (core dumped) и создаст файл core-NNNN, где NNNN - номер процесса.
  3. запускаем gdb для посмертного анализа gdb proga core-NNNN
  4. gdb покажет в каком месте упало, выдать команду bt - покажет цепочку вызовов функций. Обычно этого достаточно, чтобы понять в каком месте падает. Можно командой p var-name узнать значение var-name в момент падения.
    Segmentation fault бывает, если указатели неправильно инициализированы или вообще не инициализированы. Но это уже скорее отсутствие поверок в коде библиотеки.

Исходная версия sigurd, :

Я новичок в отладки. Можете дать пошаговую инструкцию?

Последовательность примерно такая:

  1. включаем создание core ulimit -c unlimited
  2. запускаем свою прогу - она упадет с сообщением Segmentation fault (core dumped) и создаст файл core-NNNN, где NNNN - номер процесса.
  3. запускаем gdb для посмертного анализа gdb proga core-NNNN
  4. gdb покажет в каком месте упало, выдать команду bt - покажет цепочку вызовов функций. Обычно этого достаточно, чтобы понять в каком месте падает. Можно командой p var-name узнать значение va-name в момент падения.
    Segmentation fault бывает, если указатели неправильно инициализированы или вообще не инициализированы.