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

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

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

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

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

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

0 ответов

Другие вопросы по тегам