Ho provato a eseguire valgrind (memcheck e massif) su un'app che ho scritto, ma tutto ciò che ottengo sono gli indirizzi per le funzioni eseguite.Valgrind non restituirà le linee di origine!
---------------------------------
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)
ho compilato la mia app con la bandiera -g di mettere i simboli di debug in. C'è qualche altra ragione per cui valgrind non avrebbe mostrato la linea di origine?
MODIFICA: versione di valgrind 3.2.1-Debian; g ++ 4.3.1
Non è sicuro, ma se tu 'gdb prog_name' la tua app e prova qualcosa come' break 0x812E077', gdb' mostra i numeri di riga? (Non dovresti nemmeno "eseguire" il programma, devi solo gdb! Caricarlo.) – aschepler
@aschepler - Provato. Ogni volta che provo a farlo, gdb non riesce a trovare la funzione denominata "0x812E077" e chiede se è in una libreria che verrà caricata in seguito ... quindi non ha funzionato. –
Whoops, che avrebbe dovuto essere 'break * 0x812E077'. Ma felice che tu abbia trovato una soluzione. – aschepler