Ответ 1
Для получения полной трассировки стека потребуются отладочные символы для всех библиотек/исполняемых файлов, которые могут быть связаны с утечкой (и в пределах, установленных --num-callers
).
Если вы создаете любой из них самостоятельно, вам нужно указать флаг -g
в gcc (или соответствующий флаг в любом другом компиляторе).
Обратите внимание, что valgrind не является надежным, и может иногда пропускать утечки или не в состоянии обеспечить полные трассировки стека (особенно если вы используете потоки или сложные реализации class
).
Для библиотек, не содержащих отладочную информацию, трассировка стека останавливается в этой библиотеке.
Для бесплатного инструмента valgrind очень хорош в том, что он делает, но есть причины, по которым IBM может продавать профили памяти за большие деньги.