Qualcuno sa dove posso trovare uno strumento di rilevamento perdite di memoria per C++ che può essere eseguito in una riga di comando o come un plug-in Eclipse in Windows e Linux. Mi piacerebbe che fosse facile da usare. Preferibilmente uno che non sovrascrive new(), delete(), malloc() o free(). Qualcosa come GDB se sarà nella riga di comando, ma non ricordo che venga usato per rilevare perdite di memoria. Se esiste un quadro di prova dell'unità che lo fa automaticamente, sarebbe fantastico.G ++ Strumento di rilevamento perdite di memoria multipiattaforma
Questa domanda è simile ad altre domande (ad esempio Memory leak detection under Windows for GNU C/C++) tuttavia ritengo che sia diversa perché chiedono soluzioni specifiche per Windows o dispongono di soluzioni che preferirei evitare. Sento che sto cercando qualcosa di un po 'più specifico qui. I suggerimenti non devono soddisfare tutti i requisiti, ma il maggior numero possibile sarebbe bello.
Grazie. EDIT: Poiché questo è venuto fuori, per "sovrascrivere" intendo tutto ciò che mi richiede di # include una libreria o che altrimenti cambia il modo in cui C++ compila il mio codice, se lo fa in fase di esecuzione in modo che esegua il codice in un ambiente diverso non influirà su nulla che sarebbe bello. Inoltre, sfortunatamente, non ho un Mac, quindi qualsiasi suggerimento per questo non è di aiuto, ma grazie per aver provato. Il mio desktop esegue Windows (ho Linux installato ma i miei due monitor non funzionano con esso) e preferisco non eseguire Linux in una VM, anche se questa è certamente un'opzione. Il mio computer portatile funziona con Linux, quindi posso usare lo strumento lì, anche se preferirei sicuramente attaccare al mio desktop poiché lo spazio dello schermo è eccellente per mantenere tutta la documentazione e i requisiti di progettazione in vista senza dover spostare troppo il desktop .
NOTA: Sebbene possa provare a rispondere, non contrassegnerò uno come accettato finché non avrò provato il suggerimento ed è soddisfacente.
EDIT2: Non sono preoccupato per la compatibilità multipiattaforma del mio codice, si tratta di un'applicazione a riga di comando che utilizza solo le librerie C++.
Intendi ricompilare l'app di Windows su * nix usando Wine come implementazione di api? (sono solo curioso) – olliej
valgrind funziona per x86_64 così come PowerPC, MIPS, ARM e altre architetture. – LiraNuna
No, voglio dire eseguire il tuo binario di Windows, non modificato, su linux sotto il vino stesso sotto valgrind. Ecco perché ho menzionato solo 32 bit: valgrind non può eseguire app sotto wine con supporto a 64 bit, e wine con supporto a 64 bit è sperimentale (da 64 bit, voglio dire applicazioni windows a 64 bit) –