DBGMEM

Software screenshot:
DBGMEM
Dettagli del software:
Versione: 1.9.2
Data di caricamento: 3 Jun 15
Sviluppatore: Moser Michael
Licenza: Libero
Popolarità: 21

Rating: nan/5 (Total Votes: 0)

E 'attualmente funziona solo per Linux. DBGMEM è rilasciato sotto i termini della GNU Lesser General Public License
Lo strumento consente di trovare i problemi, come
& Nbsp; 1. perdite di memoria
& Nbsp; 2. corruzione della memoria heap
& Nbsp; 3. L'uso improprio, argomento illegale funzioni della libreria standard selezionati.
& Nbsp; 4. corruzione dello stack
& Nbsp; 5. L'utilizzo di memoria heap liberato o non inizializzato.
& Nbsp; 6. Consente di estendere lo strumento, controllare gli argomenti aggiuntivi API
Lo strumento sostituisce le funzioni di allocazione della memoria GLIBC, la memoria e le funzioni di manipolazione delle stringhe al fine di aggiungere le sue caratteristiche.
DBGMEM non richiede modifiche al programma, anche se si potrebbe desiderare di cambiare il vostro programma al fine di utilizzare alcune funzionalità avanzate.
DBGMEM è un debugger di memoria open source per i programmi C e C ++ e gira sotto il sistema operativo Linux, ed è rilasciato sotto i termini della GNU Lesser General Public License. DBGMEM aggiunge controlli di debug a parti del di libreria standard Glibc; è implementato come librerie condivise che vengono caricate nello spazio degli indirizzi del processo di debug.
Strumenti
DBGMEM ha diversi strumenti di debug di memoria, ognuna può essere caricato nel programma di debug; Lo strumento semplice tiene traccia di tutti i blocchi di memoria allocata, e aggiunge libro informazioni tenuta, come la pila al momento quando il blocco è stato assegnato, in un'intestazione un'arena che precede il blocco di memoria allocata; aggiunge anche una parola guardia prima e dopo il blocco assegnato; La semplice strumento è meglio utilizzato per l'individuazione di problemi di perdita di memoria; come intestazione scena può avere danneggiato dal programma che è in fase di debug. Il controllo ha preso mantiene tutte le informazioni-book mantenendo dallo stack in un file mappato in memoria anonima; questo rende lo strumento più robusto per resistere memoria sovrascrittura bug. Lo strumento di controllo aggiunge anche capacità di guardare rapidamente informazioni su qualsiasi blocco di heap per un valore di puntatore contenuta all'interno del blocco di heap; lo strumento di controllo aggiunge convalida dei parametri stringa comune e funzioni di manipolazione della memoria, e controlli per l'eventuale pila smashing da queste funzioni.
Modalità di funzionamento
È possibile eseguire la maggior parte dei programmi con il debugger come è; lo strumento non richiede il programma di debug di essere collegato con le librerie specifiche; Lo strumento è una libreria condivisa che viene caricato nello spazio di indirizzi di un processo che viene controllato mediante la tecnica di iniezione DLL. La caratteristica LD_PRELOAD del linker dinamico è utilizzato per caricare gli strumenti biblioteca condivise in primo luogo, prima di caricare qualsiasi altra libreria; allocazione di memoria e la funzione manipolazione di stringhe vengono intercettati e il primo chiamato dalla libreria utensili; Ciò consente allo strumento di aggiungere i controlli. Durante tempo di esecuzione del processo di debug un rapporto grezzo è scritto che viene ulteriormente elaborato dopo la conclusione del processo di debug; il rapporto aumentata aggiunge nomi delle funzioni simboliche di impilare le tracce contenute nella relazione grezzo. Il debugger Gdb è utilizzato per trasformare gli indirizzi numerici in indirizzi simbolici durante l'ulteriore elaborazione della relazione prime

Caratteristiche :.

  • perdite di memoria ; questo vale per entrambi lo strumento di controllo e strumenti semplici. Lo strumento tiene traccia di ogni blocco di memoria heap allocata con stack presa nel momento in cui è stato assegnato il blocco; inoltre una variabile intera viene mantenuta ad ogni assegnazione, questo valore tiene traccia un periodo di logica / `generazione 'che caratterizza il momento in cui è stato assegnato il blocco. Un rapporto di queste informazioni sono sempre prodotti all'uscita processo, o quando richiesto dall'utente. Queste informazioni consentono di trovare le istanze e le cause di perdite di memoria.
  • L'utilizzo di memoria heap non inizializzato o la memoria heap liberato; questo vale per entrambi lo strumento di controllo e strumenti semplici. Lo strumento imposta tutta la memoria appena allocata al valore di byte 0xDD e tutta la memoria liberata al valore di byte 0xEE; uso di questi valori di solito porta a programmare gli errori, se questa area di memoria contiene un puntatore, poi dereferenziazione di un puntatore con valore 0xDDDDDDDD porterà ad un arresto.
  • corruzione della memoria heap; questo vale per entrambi lo strumento di controllo e strumenti semplici. I controlli strumento per la memoria sovrascrive e copra mettendo un prefisso di memoria e il suffisso su ogni blocco heap; se il valore del suffisso è cambiata poi viene rilevato un mucchio sovrascrittura / sottoscrivono.
  • Questo vale per il 'strumento di controllo' '' '' solo; L'uso improprio di funzioni di manipolazione di stringhe di glibc e copia della memoria / funzioni di movimento di GLIBC; corruzione dello stack da quelle funzioni controllato Lo strumento ottiene un primo passaggio sulle funzioni della libreria standard comuni, si controlla che la funzione non sovrascriverà un blocco argomento cumulo esistente; è anche verificato che lo stack del thread chiamante non sarà danneggiato.

Cosa c'è di nuovo in questa versione:

  • fare ora diventa variabile d'ambiente CFLAGS
  • costruire dbgmem biblioteca opzione -ldl
  • libreria condivisa è ora collocato in lib / $ (uname -r) directory, come glibc è sposato con la versione del kernel.
  • fix compilazione su alcuni sistemi (step configure)
  • possibilità di eseguire script di aggiungere (-m - generano pila tracce solo per alcune generazioni)

Cosa c'è di nuovo nella versione 1.9.1:

  • fanno lo script aggiornato, ora prova a rilevare richiesto Impostazioni costruiti; ancora non ora come fare automake se
  • errore di compilazione in modalità C per gcc 2.9.6 fissa; gcc blocca ancora con errore interno su C ++ modalità costruito
  • aggiunto -g opzione (disattiva controllo per l'abbinamento di malloc / new / new [] e libero / cancellare / delete [] in C ++ modalità)

Cosa c'è di nuovo in versione 1.7:

  • opzione -F seguire le chiamate fork ed exec (come in aggiunta fork / exec)
  • ora visualizza la linea di comando del processo di debug nell'intestazione del file di report.
  • mappa nome del file include ora pid.
  • eliminare i file di report di base per l'impostazione predefinita; ci sono troppi di loro;
  • tutti gli usi del sprintf cambiati per snprintf

Programmi simili

Splint
Splint

3 Jun 15

python-ptrace
python-ptrace

11 May 15

gDEBugger
gDEBugger

2 Jun 15

Commenti a DBGMEM

I commenti non trovato
Aggiungi commento
Accendere le immagini!