Возвращение стека потоков при прерывании работы программы под valgrind - PullRequest
2 голосов
/ 21 декабря 2009

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

Ответы [ 2 ]

1 голос
/ 22 декабря 2009

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

0 голосов
/ 22 декабря 2009

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

thread apply all bt
...