Tällä hetkellä toimii Linux vain. DBGMEM on julkaistu GNU Lesser General Public License
Työkalu auttaa sinua löytämään ongelmiin, kuten
& Nbsp; 1. muistivuotokuvioista
& Nbsp; 2. keon muistin korruptio
& Nbsp; 3. Väärinkäyttö, laiton argumentti valitaan standardin kirjaston toimintoja.
& Nbsp; 4. pino korruptio
& Nbsp; 5. Käyttö vapautti tai un-alustetuille kasaan muistia.
& Nbsp; 6. Mahdollistaa pidentää työkalun, tarkista lisäksi API: n väitteet
Työkalu ohittaa glibc muistin jakamista toiminnot, muisti ja merkkijonojen käsittely toimintoja, jotta voit lisätä sen ominaisuuksia.
DBGMEM ei vaadi muutoksia ohjelmaan, vaikka saatat haluta muuttaa ohjelmaa, jotta voit käyttää joitakin lisätoimintoja.
DBGMEM on avoimen lähdekoodin muistia debugger C- ja C ++ ohjelmien ja kestää alle Linux-käyttöjärjestelmä, ja on julkaistu GNU Lesser General Public License. DBGMEM lisää virheenkorjaus tarkastukset osiin ja Glibc standardin kirjasto; se toteutetaan kirjastoja, jotka ladataan osoiteavaruuden debugged prosessin.
Työkalut
DBGMEM on useita muistin testausvälineitä, jokainen voi ladata debugged ohjelmaan; Simple työkalu pitää kirjaa kaikista jaettu muisti lohkot, ja lisää kirjanpito tietoa, kuten pino tekohetkellä lohko myönnettiin, osaksi areenalla otsikkoon, joka edeltää jaettu muisti estää; se myös lisää vartija sana ennen ja jälkeen myönnetyt estää; Yksinkertainen työkalu, on parasta käyttää havaitsemiseen muistivuoto ongelmia; sillä areenalla otsikko voi panna lahjoa ohjelman, jota debugged. Tarkkailun vei pitää kaikki kirjanpito tietoa pinosta vuonna nimettömän muistimapatun tiedosto; tämä tekee työkalun vakaampi kestämään muistiin päällekirjoittamalla vikoja. Tarkkailun työkalu lisää myös kyky nopeasti etsiä tietoja kaikista kasaan lohkoon osoitinarvo sisällä että kasan estää; tarkkailun työkalu lisää validointi parametrien yhteisten merkkijono ja muistin manipulointi toiminnot, ja tarkistaa mahdolliset pinon Smashing mennessä näitä toimintoja.
Toimintatapa
Voit suorittaa useimmat ohjelmia debugger kuten; työkalu ei vaadi debugged ohjelman sidoksissa mihinkään tiettyyn kirjastot; Työkalu on jaettu kirjasto, joka on ladattu osoiteavaruus on prosessi, joka on tarkastettava tekniikan DLL Injection. LD_PRELOAD piirre Dynamic linkkeriä käytetään ladata työkalujen jaetun kirjaston ensin, ennen mitään muuta kirjasto on ladattu; muistin jakamista ja merkkijonojen käsittely toiminto siepataan ja kutsuttiin työkalun kirjastosta; Tämä mahdollistaa työkalun lisätä sen tarkastuksia. Vuoden käyntiaika debugged prosessin raaka raportti on kirjoitettu, joka jatkojalostetaan päättymisen jälkeen debugged prosessin; täydennetty mietintö lisää symboliset toimintojen nimet pino jälkiä sisältämien raaka raportissa. Gdb debuggeri käytetään kääntää numeerinen osoitteet symbolinen osoitteet aikana jatkokäsittelyn raaka mietinnön.
Ominaisuudet
- muistivuotokuvioista ; tämä koskee sekä tarkastusten avulla ja yksinkertaisia työkaluja. Työkalu seuraa kunkin jaetun keon lohko yhdessä kutsupinon otettu silloin, kun lohko myönnettiin; lisäksi kokonaisluku tunniste pidetään jokaisen jakamisesta, tämä arvo seuraa looginen ajan / `sukupolvi", joka luonnehtii kun lohko oli varattu. Kertomus näistä tiedoista on aina tuotetaan prosessin lopetus, tai pyytäessä käyttäjä. Tämä tieto auttaa löytämään tapauksia ja syitä muistivuotoja.
- käyttö ole alustettu keon muistia tai vapauttaa kasaan muistia; tämä koskee sekä tarkastusten avulla ja yksinkertaisia työkaluja. Työkalu asettaa kaikki hiljattain osoitettu muistia tavulla 0xDD ja kaikkien vapautti muistia tavulla 0xEE; käyttää näitä arvoja johtaa yleensä ohjelmoida virheitä, jos tämä muistialue sisältää osoittimen, niin dereferencing of osoitinta arvo 0xDDDDDDDD johtaa kaatumisen.
- Heap muisti korruptiota; tämä koskee sekä tarkastusten avulla ja yksinkertaisia työkaluja. Työkalu tarkistaa muistin korvaa ja vahinkovakuutuksia asettamalla muisti etuliite ja loppuosan jokaisesta kasaan lohko; jos arvo on pääte vaihdetaan sitten kasaan päällekirjoituskuvaajan / vakuutuksia havaitaan.
- Tämä koskee '' 'tarkkailun väline "" "vain; Väärinkäyttö merkkijonojen käsittely toimintoja glibc ja muistin kopioi / siirrä toimintojen glibc; pino korruptiota ne tarkastetaan toiminnot työkalu saa ensikierron yhteisistä standardin kirjaston toimintoja, tarkistetaan, että toiminto ei korvaa olemassa olevaa väitettä kasaan lohko; se tarkastetaan myös, että pino kutsuvan ketjussa ei vioittunut.
Mikä on uusi tässä julkaisussa:
- tehdä nyt saa CFLAGS ympäristömuuttuja
- rakentaa dbgmem kirjasto -ldl vaihtoehto
- jaettu kirjasto on nyt asetettu osaksi lib / $ (uname -r) hakemistoon, koska glibc on naimisissa ytimen version.
- fix kokoelma joissakin järjestelmissä (configure vaihe)
- Lisää vaihtoehto ajaa skriptin (-m - tuottaa pino jälkiä vain joidenkin sukupolvien)
Mikä on uusi versiossa 1.9.1:
- tehdä käsikirjoituksen päivitetään, nyt yrittää tunnistaa tarpeen rakennettu asetukset; vieläkään ei nyt miten automake vaikka
- käännösvirhe C tilassa gcc 2.9.6 kiinteitä; gcc vielä kaatuu sisäinen virhe C ++ mode rakennettu
- lisätty mahdollisuus -g (poista tarkista pariksi malloc / uusi / uudet [] ja vapaa / poistaa / poista [] C ++ tilassa)
Mikä on uusi versiossa 1.7:
- lisätty mahdollisuus -F seuraa haarukka ja exec puhelut (kuten haarukka / exec)
- nyt tulostaa komentorivillä debugged prosessin otsikossa raporttitiedostoon.
- kartta tiedoston nimi sisältää nyt pid.
- poista raaka raportin tiedostoja oletuksena; on liian monta niistä,
- kaikki käyttötarkoitukset sprintf muuttui snprintf
Kommentteja ei löytynyt