Dit werk tans slegs vir Linux. DBGMEM is vrygestel onder die voorwaardes van die GNU Lesser General Public License
Die instrument help jou om probleme soos vind
& Nbsp; 1. geheue lekkasies
& Nbsp; 2. hoop geheue korrupsie
& Nbsp; 3. Misbruik, onwettige argument geselekteerde standaard biblioteek funksies.
& Nbsp; 4. stapel korrupsie
& Nbsp; 5. Gebruik van bevry of un geïnitialiseerd hoop geheue.
& Nbsp; 6. Kan jy die instrument uit te brei, gaan argumente bykomende API's
Die instrument oorheers glibc geheue toekenning funksies, geheue en string manipulasie funksies ten einde sy funksies by te voeg.
DBGMEM nie enige veranderinge aan jou program vereis, maar jy kan wens om jou program om 'n paar gevorderde funksies te gebruik verander.
DBGMEM is 'n oop bron geheue debugger vir C en C ++ programme en loop onder die Linux-bedryfstelsel, en is vrygestel onder die GNU Lesser General Public License. DBGMEM voeg debugging tjeks om dele van die van glibc standaard biblioteek; dit geïmplementeer as deel biblioteke wat in die adres spasie van die ontfout proses gelaai is.
Ekstra
DBGMEM het verskeie geheue debugging gereedskap, elkeen in die ontfout program gelaai kan word; Die eenvoudige instrument hou van al toegeken geheue blokke, en voeg boekhouding inligting, soos die stapel in die tyd toe die blok toegeken, in 'n arena kop dat die toegekende geheue blok voorafgaan; dit voeg ook 'n wag woord voor en na die toegekende blok; Die eenvoudige instrument is die beste gebruik vir die opsporing van geheugenlek probleme; as die arena kop kan kry beskadig deur die program wat word ontfout. Die kontrolering het hou al boekhouding inligting uit die stapel in 'n anonieme-Memory gekarteer lêer; dit maak die instrument meer robuuste geheue te vervang foute te weerstaan. Die instrument nagaan voeg ook die vermoë om vinnig te kyk inligting oor enige hoop vir 'n blok wyser waarde vervat in daardie hoop blok; die instrument nagaan voeg validering van parameters gemeenskaplike string en geheue manipulasie funksies, en tjeks vir moontlike stapel breek deur hierdie funksies.
Wyse van werking
Jy kan die meeste programme te hardloop met die debugger soos; die instrument nie die ontfout program vereis word verbind met 'n spesifieke biblioteke; Die instrument is 'n gedeelde biblioteek wat in die adres spasie van 'n proses wat gekontroleer deur middel van die tegniek van DLL Inspuiting gelaai word. Die LD_PRELOAD kenmerk van die Dynamic linker word gebruik om die gereedskap eerste gedeelde biblioteek, voor enige ander biblioteek is gelaai laai; geheuetoekenning en string manipulasie funksie onderskep en eerste geroep van die instrument biblioteek; Dit stel die instrument om sy tjeks by te voeg. Gedurende runtime van die ontfout proses 'n rou verslag word geskryf wat verder verwerk na die beëindiging van die ontfout proses; die volgemaak verslag voeg simboliese funksie name spore in die rou verslag stapel. Die GDB debugger gebruik word om numeriese adresse in simboliese adresse tydens verdere verwerking van rou verslag
Eienskappe :.
- geheue lekkasies ; dit geld vir beide die instrument nagaan en eenvoudige gereedskap. Die instrument spore elke toegeken hoop blok saam met stapel spoor geneem in die tyd toe die blok toegeken; Verder 'n heelgetal tag gehou met mekaar toekenning, hierdie waarde spore 'n logiese tydperk / `generasie 'dat die tyd toe die blok toegeken kenmerk. In 'n verslag van hierdie inligting word altyd geproduseer oor die proses uitgang, of op versoek van die gebruiker. Hierdie inligting help om gevalle en oorsake van die geheue lekkasies te vind.
- Die gebruik van nie geïnisialiseer hoop geheue of bevry hoop geheue; dit geld vir beide die instrument nagaan en eenvoudige gereedskap. Die instrument stel alle nuut toegeken geheue om byte waarde 0xDD en al bevry geheue om byte waarde 0xEE; gebruik van hierdie waardes lei gewoonlik tot foute program, as die geheue area bevat 'n wyser, dan dereferencing van 'n muis met waarde 0xDDDDDDDD sal lei tot 'n ongeluk.
- Heap geheue korrupsie; dit geld vir beide die instrument nagaan en eenvoudige gereedskap. Die instrument tjeks vir geheue oor skryf en onderskryf deur die plasing van 'n geheue voorvoegsel en agtervoegsel elke hoop blok; indien die waarde van die agtervoegsel dan verander 'n hoop oorskryf / onderskryf bespeur.
- Dit geld vir die '' 'kontrolering instrument' '' net; Misbruik van string manipulasie funksies van glibc en geheue kopie / skuif funksies van glibc; stapel korrupsie deur diegene nagegaan funksies Die instrument kry 'n eerste pas op algemene standaard biblioteek funksies, word dit bewys dat die funksie van 'n bestaande argument hoop blok nie oorskryf; dit is ook bewys dat die stapel van die roeping draad sal nie beskadig.
Wat is nuut in hierdie release:
- maak nou kry CFLAGS omgewing veranderlike
- bou dbgmem biblioteek -ldl opsie
- gedeelde biblioteek is nou geplaas in lib / $ (uname -r) gids, as glibc is getroud met die kern weergawe.
- fix samestelling op sommige sisteme (instel stap)
- voeg opsie om script hardloop (-m - genereer stapel spore net vir 'n paar geslagte)
Wat is nuut in weergawe 1.9.1:
- maak script opgedateer, probeer dit nou op te spoor vereis gebou instellings; nog steeds nie nou hoe om auto doen al
- samestelling fout in C af vir gcc 2.9.6 vasgestel; gcc ineenstortings steeds met interne fout op C ++ af gebou
- bygevoeg opsie G (skakel tjek vir paring van malloc / nuwe / nuwe [] en vry / verwyder / verwyder [] in C ++ af)
Wat is nuut in weergawe 1.7:
- bygevoeg opsie -F vurk en exec oproepe volg (soos in vurk / exec)
- druk nou uit die opdrag lyn van die ontfout proses kop van die verslag lêer.
- kaart lêernaam sluit nou pid.
- rou verslag lêers verwyder by verstek; daar is te veel van hulle;
- alle gebruike van sprintf verander na snprintf
Kommentaar nie gevind