Quando eseguo valgrind --leak-check=yes
su un programma, sono riportati alcuni byte di memoria perduta. È possibile visualizzare il contenuto di questa memoria (ad esempio, scaricare i dati che sono memorizzati in esso)?contenuti di dumping della memoria perduta riportato da Valgrind
6
A
risposta
8
Potete farlo con l'ultima versione di Valgrind (3.8.1):
crea il file eseguibile di attivare il gdbserver all'avvio:
valgrind --vgdb-error=0 ....<your program>
Poi in un'altra finestra, collegare un gdb per Valgrind (seguendo le indicazioni in Valgrind). poi mettere un punto di interruzione in un posto rilevante (ad esempio a fine principale) e utilizzare il comando gdb
continue
fino al raggiungimento del punto di interruzione. Poi fare una ricerca perdita da gdb:
monitor leak_check full reachable any
quindi elencare l'indirizzo (i) dei blocchi raggiungibili del relativo record di perdita nr
monitor block_list <loss_record_nr>
È quindi possibile utilizzare le funzioni di gdb per esaminare la memoria degli indirizzi indicati. Nota anche il comando potenzialmente interessante "who_points_at" se siete alla ricerca che ha mantenuto un puntatore a questa memoria.
ottengo "' valgrind: opzione Bad: --vgdb-error = 0 '". (Valgrind-3.6.1) – panzi
@panzi Penso che questo funziona solo da 3.8.1 di cui sopra come PPW menzionato. Ho provato questo con valgrind-3.11.0 e non ci sono stati problemi. – Nubcake