Как использовать файлы ядра для поиска проблем с приложениями на C/C++?

Я понятия не имею, как я могу найти основную причину проблемы приложения Linux C/C++, используя файлы ядра. Я понимаю, что основные файлы генерируются, когда с приложением происходит что-то неожиданное. Но я не знаю, с чего начать. Кто-нибудь может дать мне толчок?


person Java Noob    schedule 21.10.2012    source источник
comment
извините, только что отредактировал несколько секунд назад. Это на С/С++.   -  person Java Noob    schedule 21.10.2012
comment
Первое, что я пытаюсь получить из дампа ядра, — это обычно трассировку стека для всех потоков, что можно сделать с помощью таких инструментов, как gdb или pstack, некоторые из которых зависят от платформы.   -  person Seg Fault    schedule 21.10.2012
comment
Вы начинаете с gdb program core. Вы прошли это?   -  person Vaughn Cato    schedule 21.10.2012
comment
возможный дубликат Как анализировать файл дампа ядра программы?   -  person hichris123    schedule 21.09.2014


Ответы (3)


Научитесь анализировать дампы ядра из Здесь. Вот откуда я узнал. Да, он использует GDB.

И это

person Aniket Inge    schedule 21.10.2012

«gdb» — это основной инструмент, который вы можете использовать для анализа дампов ядра Linux. Вот несколько хороших руководств:

person paulsm4    schedule 21.10.2012
comment
Там три ссылки :) И нет такого языка, как C/C++. Есть C, есть C++, и вы, как правило, выбираете один или другой. Я предпочитаю C; или Java или С# для любого ОО-материала :) - person paulsm4; 22.10.2012

Некоторая общая помощь:

Установите gdb, используя:

ням установить gdb

gdb запустить GDB без отладочных файлов

программа gdb начать отладку программы

ядро программы gdb ядро ​​отладки coredump, созданное программой

gdb --help описывает параметры командной строки

1- Прежде всего найдите каталог, в котором создается основной файл. 2- Затем используйте команду «ls -ltr» в каталоге, чтобы найти последний сгенерированный файл ядра. 3- Чтобы загрузить основной файл, используйте

бинарный путь gdb к файлу ядра

Это загрузит файл ядра.

4- Затем вы можете получить информацию с помощью команды «bt». Для подробной обратной трассировки используйте «bt full».

5- Чтобы распечатать переменные, используйте «print varibale-name» или «p varibale-name».

6- Чтобы получить любую помощь по gdb, используйте опцию «помощь» или используйте «по теме поиска».

7- Используйте «номер кадра кадра», чтобы перейти к нужному номеру кадра.

8- Используйте команды «вверх n» и «вниз n», чтобы выбрать кадр n кадров вверх и выбрать кадр n кадров вниз соответственно.

9- Чтобы остановить gdb, используйте «quit» или «q».

person Mayank    schedule 20.05.2014