История изменений
Исправление sigurd, (текущая версия) :
Я новичок в отладки. Можете дать пошаговую инструкцию?
Последовательность примерно такая:
- включаем создание core
ulimit -c unlimited
- запускаем свою прогу - она упадет с сообщением Segmentation fault (core dumped) и создаст файл core-NNNN, где NNNN - номер процесса.
- запускаем gdb для посмертного анализа
gdb proga core-NNNN
- gdb покажет в каком месте упало, выдать команду bt - покажет цепочку вызовов функций. Обычно этого достаточно, чтобы понять в каком месте падает. Можно командой p var-name узнать значение var-name в момент падения.
- Segmentation fault бывает, если указатели неправильно инициализированы или вообще не инициализированы. Но это уже скорее отсутствие проверок в коде библиотеки.
Исправление sigurd, :
Я новичок в отладки. Можете дать пошаговую инструкцию?
Последовательность примерно такая:
- включаем создание core
ulimit -c unlimited
- запускаем свою прогу - она упадет с сообщением Segmentation fault (core dumped) и создаст файл core-NNNN, где NNNN - номер процесса.
- запускаем gdb для посмертного анализа
gdb proga core-NNNN
- gdb покажет в каком месте упало, выдать команду bt - покажет цепочку вызовов функций. Обычно этого достаточно, чтобы понять в каком месте падает. Можно командой p var-name узнать значение var-name в момент падения.
- Segmentation fault бывает, если указатели неправильно инициализированы или вообще не инициализированы. Но это уже скорее отсутствие поверок в коде библиотеки.
Исправление sigurd, :
Я новичок в отладки. Можете дать пошаговую инструкцию?
Последовательность примерно такая:
- включаем создание core
ulimit -c unlimited
- запускаем свою прогу - она упадет с сообщением Segmentation fault (core dumped) и создаст файл core-NNNN, где NNNN - номер процесса.
- запускаем gdb для посмертного анализа
gdb proga core-NNNN
- gdb покажет в каком месте упало, выдать команду bt - покажет цепочку вызовов функций. Обычно этого достаточно, чтобы понять в каком месте падает. Можно командой p var-name узнать значение var-name в момент падения.
Segmentation fault бывает, если указатели неправильно инициализированы или вообще не инициализированы. Но это уже скорее отсутствие поверок в коде библиотеки.
Исходная версия sigurd, :
Я новичок в отладки. Можете дать пошаговую инструкцию?
Последовательность примерно такая:
- включаем создание core
ulimit -c unlimited
- запускаем свою прогу - она упадет с сообщением Segmentation fault (core dumped) и создаст файл core-NNNN, где NNNN - номер процесса.
- запускаем gdb для посмертного анализа
gdb proga core-NNNN
- gdb покажет в каком месте упало, выдать команду bt - покажет цепочку вызовов функций. Обычно этого достаточно, чтобы понять в каком месте падает. Можно командой p var-name узнать значение va-name в момент падения.
Segmentation fault бывает, если указатели неправильно инициализированы или вообще не инициализированы.