Próbowałem już uruchomić valgrind (memcheck i massif) w aplikacji, którą napisałem, ale wszystko, co otrzymuję, to adresy dla uruchamianych funkcji.Valgrind nie zwróci wierszy źródłowych!
---------------------------------
Context accounted for 0.6% of measured spacetime
0x805F29A: (within prog_name)
0x8141740: (within prog_name)
Called from:
0.6% : 0x812E077: (within prog_name)
---------------------------------
Context accounted for 0.5% of measured spacetime
0x805F29A: (within prog_name)
0x81418FB: (within prog_name)
Called from:
0.5% : 0x812E077: (within prog_name)
Skompilowałem moją aplikację z flagą -g umieścić symbole debugowania w. Czy jest jakiś inny powód valgrind nie pokaże linię źródłowy?
EDYCJA: valgrind wersja 3.2.1-Debian; g ++ 4.3.1
Nie jestem pewien, ale jeśli ty 'gdb prog_name' swoją aplikację i wypróbuj coś takiego jak' break 0x812E077', czy 'gdb' pokazuje numery linii? (Nie powinieneś nawet "uruchamiać" programu, po prostu ładuj go 'gdb'.) – aschepler
@aschepler - Próbowałem. Ilekroć próbuję to zrobić, gdb nie może znaleźć funkcji o nazwie "0x812E077" i pyta, czy jest w bibliotece, która zostanie załadowana później ... więc to nie zadziałało. –
Ups, powinno to być 'break * 0x812E077'. Ale cieszę się, że znalazłeś poprawkę. – aschepler