Jelenleg dolgozik csak Linux. DBGMEM alatt kiadott GNU Lesser General Public License
Az eszköz segít megtalálni a problémákat, mint a
& Nbsp; 1. memóriavesztés
& Nbsp; 2. kupacmemóriája korrupció
& Nbsp; 3. A helytelen, illegális érv a kiválasztott szabvány könyvtári funkciókat.
& Nbsp; 4. verem a korrupció
& Nbsp; 5. Használja a felszabadult, vagy un-inicializált kupacmemóriája.
& Nbsp; 6. Lehetővé teszi, hogy kiterjeszti az eszközt, ellenőrizze a további API érveit
Az eszköz felülírja glibc memóriafoglalási funkciók, a memória és a húr képességeivel, hogy hozzá jellemzői.
DBGMEM nem igényel változtatásokat a programot, de érdemes lehet megváltoztatni a programot annak érdekében, hogy néhány fejlett funkciókat.
DBGMEM egy nyílt forráskódú memória debugger C és C ++ programok és fut a Linux operációs rendszer, és a GNU Lesser General Public License. DBGMEM hozzáteszi hibakeresés ellenőrzések részein a glibc standard könyvtár; megvalósítást a megosztott könyvtárakat, hogy betöltődnek a címtartomány a hibakeresés folyamat.
DBGMEM több memóriát hibakereső eszközök, egyes tölthető be a hibakeresést programot; Az egyszerű eszköz nyilvántartja a kiosztott memória blokkok, és hozzáteszi, könyvelési adatokat, mint például a verem, amikor a blokk osztottak, egy arénában fejléc, amely megelőzi a lefoglalt memória blokk; azt is hozzáteszi, egy őr szó előtt és után a kijelölt blokk; Az egyszerű eszköz a legjobb használt kimutatására memóriavesztés problémák; mint az arénában fejléc megsérülnek a program, amelyet a hibakeresést. Az ellenőrzés vette tartja az összes könyvviteli információk a veremből egy névtelen memórialeképezésesek file; Ezáltal a készülék erőteljesebb ellenállni memória felülírás hibákat. Az ellenőrzés eszköze is hozzáteszi, hogy gyorsan felnéz információ bármely kupac blokk egy pointer értéket szerepelnek abban az kupac blokk; Az ellenőrző eszköz hozzáteszi érvényesítése paraméterek közös húr és a memória képességeivel, és ellenőrzi a lehetséges verem szétzúzták az ezeket a funkciókat.
Üzemmód
Meg lehet futtatni a legtöbb program a debugger mint; Az eszköz nem igényel a hibakeresést program kapcsolódik semmilyen konkrét könyvtárak; Az eszköz egy megosztott könyvtár betöltődik a címtartomány egy olyan folyamat, amely segítségével ellenőrizhető a technika DLL Injection. A LD_PRELOAD jellemzője a dinamikus linker betöltéséhez használt eszközöket megosztott könyvtár első, mielőtt bármilyen más könyvtár betöltése; memória kiosztása és RSTART funkció elfogott és először az úgynevezett az eszköz könyvtár; ez lehetővé teszi az eszköz hozzá annak ellenőrzését. Futás közben a hibakeresés folyamat a nyers jelentést írt a további feldolgozásnak megszűnése után a hibakeresés folyamat; A kiegészített jelentést hozzáteszi szimbolikus funkciója neveket verem nyomait tartalmazza a nyers jelentést. GDB debugger használják viszont a numerikus címeket szimbolikus címeket további feldolgozás során a nyers jelentést.
Tulajdonságok :
- memóriavesztés ; ez vonatkozik mind a ellenőrző eszköz és egyszerű eszközökkel. Az eszköz követi minden kiosztott halom blokk együtt stack trace venni akkor, amikor a blokk osztották; Továbbá egy egész szám kulcsszó tartjuk minden egyes allokációs, ez az érték pályák logikai időszak / `generációs", amely jellemzi az idő, amikor a blokk osztották. A jelentés ezen információk mindig termelt folyamat kilépési, vagy ha a felhasználó által kért. Ez az információ segít megtalálni a példányok és okainak memóriavesztés.
- használata nem törlődnek kupacmemóriája vagy felszabadított kupacmemóriája; ez vonatkozik mind a ellenőrző eszköz és egyszerű eszközökkel. Az eszköz meghatározza az összes újonnan lefoglalt memória byte értéke 0xDD és minden felszabadított memóriát, hogy bájtérték 0xEE; használata ezeket az értékeket általában vezet programozni hibák, ha ez a memória terület tartalmaz egy mutatót, majd dereferencing egy pointer értéket 0xDDDDDDDD vezet az összeomlás.
- halom memória korrupció; ez vonatkozik mind a ellenőrző eszköz és egyszerű eszközökkel. Az eszköz ellenőrzi a memóriát felülírja és köt azáltal, hogy a memória előtag és az utótag minden kupac blokk; ha az érték az utótag megváltozik majd egy halom felülírás / elvállalja észlel.
- Ez vonatkozik a '' 'ellenőrző eszköz' '' csak; Visszaélés a húr képességeivel glibc és memória másolás / áthelyezés funkciót glibc; verem a korrupció azok ellenőrzött funkciók Az eszköz kap egy első lépés a közös szabvány könyvtári funkciót, ellenőrizzük, hogy a funkció nem írja felül a meglévő érv kupac blokk; azt is ellenőrizte, hogy a köteg a hívó szál nem sérült.
Mi az új ebben a kiadásban:
- hogy most jelentkeznek CFLAGS környezeti változó
- építeni dbgmem könyvtár -ldl lehetőség
- megosztott könyvtár ma helyezik lib / $ (uname -r) könyvtár, a glibc felesége a kernel verziója.
- fix összeállítás egyes rendszerek (configure lépés)
- opció hozzáadása fut script (-m - generál stack nyomok csak néhány generáció)
Mi az új verzióban 1.9.1:
- hogy script frissítve, most megpróbálja felismerni szükséges épített beállításokat; Még mindig nem most, hogyan kell csinálni automake bár
- fordítási hibát C módban a gcc 2.9.6 rögzített; gcc mindig összeomlik belső hibája C ++ mód beépített
- hozzáadott választás -g (tiltsa csekket párosítás a malloc / new / new [] és ingyenes / Törlés / [] C ++ módban)
Mi az új a 1.7-es verzió:
- hozzáadott -f kövesse villa és exec hívások (mint a villa / exec)
- Most kiírja a parancssorban a hibakeresés folyamat fejlécében jelentést fájlt.
- map fájl neve már tartalmazza a pid.
- törölni nyers jelentést fájlok alapértelmezés szerint; túl sok közülük;
- minden felhasználási sprintf változott snprintf
Hozzászólás nem található