Возвращение стека потоков при прерывании работы программы под valgrind

У меня есть серверная программа, которая не имеет очень чистого / изящного завершения работы (обычно не завершается). При отслеживании утечек памяти я запускаю его под valgrind, но в конце концов должен завершить процесс сигналом (^C). Обычно я пытаюсь завершить процесс, когда атмосфера тихая, но все же тогда некоторые потоки могут быть заняты обработкой заданий, и память, которую они держат, вызывает ложные тревоги. Чтобы помочь такому анализу, существует ли какой-либо способ (инструмент) в valgrind, чтобы он мог печатать обратную трассировку потоков при выходе из программы (по сигналу?).

2 ответа

Я знаю, что это неудобно, но не могли бы вы заставить вашу программу выгружать ядро ​​при получении этого сигнала, а затем диагностировать дамп ядра с помощью gdb?

Не уверен, что я полностью понимаю ваш вопрос, но вы можете напечатать обратную трассировку всех pthreads с помощью gdb:

thread apply all bt
Другие вопросы по тегам