Как собрать минимальные отладочные данные из усеченного ядра программы Linux C?с GDB или без? - PullRequest
0 голосов
/ 15 декабря 2018

Как собрать минимальные данные отладки из усеченного ядра программы Linux C?

Несколько часов я пытался воспроизвести сигнал ошибки сегментации с помощью той же программы, но у меня ничего не получилось.Мне удалось получить его только один раз.Я не знаю, как извлечь минимальную информацию с помощью GDB.Я думаю, у меня был опыт работы с GDB, но теперь я думаю, что мне нужно многому научиться снова ... Возможно, кто-то знает другой отладчик, чем GDB, чтобы попробовать что-то с.Под минимальной информацией я подразумеваю вызывающую функцию, которая генерирует сигнал segfault.

Мой основной файл имеет размер 32 МБ, а GDB указывает, что выделенная для ядра требуемая память составляет 700 МБ.Как узнать, определена ли внутри основного файла функция более глубокого стека, связанная с segfault, или нет?

Из имени файла я уже знаю имя соответствующего потока, но это не достаточно для отладки программы.Я собрал файл / proc / $ PID / maps основной программы, но я не знаю, является ли он полезным для извлечения функции segfault.

Более того, как узнать, был ли сигнал segfault произведен изнутринить или если она пришла извне нить?

...