Mikä debuggeriksi (64-bit x86) ?

Anonyymi

32-bittisessä maailmassa käytän debuggerina 99% tapauksista Delphi IDE:n integroitua debuggeria, ja 1% tapauksista OllyDbg.

Käytettävissäni ei ole 64-bit versiota Delphistä, eikä käsittääkseni OllyDbg:stä myöskään ole 64 -bittistä versiota.

GDB on epädebuggeri, tuo debuggerien paarialuokkaan kuuluva ohjelma. Eli GDB:tä käytetään silloin, jos mitään muuta vaihtoehtoa ei kertakaikkiaan ole.

Siinä, missä borlandin Turbo Debuggerissa (josta on myös Windows -versio, vaikka se olikin tunnetuin MS-DOS -aikakaudella) voi laittaa globaaliin .INI -tiedostoon haluamansa asetukset, moinen ei taida GDB:ssä edes onnistua (jotta se käynnistyisi automaattisesti suoraan intel -syntaksilla eikä kuten se oletuksena tekee, häiriköi käyttäjää kelvottomalla ja harhaanjohtavalla AT&T -syntaksillaan).

Tuon syntaksieron lisäksi GDB:ssä on muitakin puutteita.

Joten, mitä muita vaihtoehtoja löytyisi 64-bit EXE ja DLL -tiedostojen debuggaukseen ?

2

985

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • Anonyymi

      GDB:n päälle on rakennettu moniin ohjelmiin yhdyskäytäviä ja myös erillisiä GUI-ohjelmia on. Tarkista vaikka gdbgui, vaikuttaa ihan varteenotettavalta.
      Tässä vielä lisää linkkejä:
      https://sourceware.org/gdb/wiki/GDB Front Ends
      Sitäpaitsi, ei se gdb niin paha ole! On ihan kiva saada sulautettuun korttiin gdb-debug komentoriviltä, jos ei muuten ole arvausta edes ongelmasta! Tällöin voi terminaaliohjelman avauksen yhteydessä tehdä gdb:n alustuksen asettamalla "modeemin" asetus-skriptiin halutut komennot.

      • Anonyymi

        "ei se gdb niin paha ole"

        Kyllä se vaan on.

        On jopa käynyt mielessä oman debuggerin ohjelmointi, ja sellaisen, ettäs e toimii sekä Windowsissa että Linuxissa.

        Mitä oletan tapahtuvaksi, JOS koodaan debuggerin itse?

        Todennäköinen lopputulos:

        Debuggeri toimii oikein hienosti, eli on teknisesti virheetön.

        Sen käyttökelpoisuutta kuitenkin alentaa se, että se ei ymmärrä lähdekoodista mitään, vaan debuggeri toimisi siten, että se vain näyttää disassembloituja peräkkäisiä käskyjä muistiosoitteineen, eli se olisi ns. Assembly level -debuggeri, mutta ilman kykyä näyttää korkean tason kielten lähdekoodia.

        Jollei sitten joku muu taho osoittaudu halukkaaksi tekemään tuohon kirjastoa, jota kutsumalla saan lähdekoodirivitiedot, eli lähdekoodirivi, rivinumero, tiedostonimi, josta ko. rivi on kopioitu (tätä mutkistaa se, jos koodi on INCLUDE -lauseella tuotu .inc -tiedostosta)
        sekä muistiosoitteet, joissa on ko. lähdekoodiriviltä peräisin olevaa koodia.

        Windowsin osalta tuo muistiosoitetieto olisi varmaankin ns. RVA -muodossa (RVA = Relative Virtual Address).

        Linuxin osalta- no jaa, en tiedä ?


    Ketjusta on poistettu 1 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. 96
      1649
    2. Mitkä asiat

      tekevät vaikeaksi kohdata kaivattusi?
      Ikävä
      74
      1444
    3. Rakas

      Eihän se tietysti minulle kuulu, mutta missä sinä olet? 😠
      Ikävä
      50
      1377
    4. Pidit itseäsi liian

      Vanhana minulle? Niinkö?
      Ikävä
      56
      1280
    5. Miltä se tuntuu

      Miltä se tuntuu havahtua, että on ollut ihmistä kohtaan, joka on rakastanut ja varjellut, täysi m*lkku? Vai havahtuuko s
      Ikävä
      104
      1258
    6. SDP:n lyhyt selviytymisopas

      1. Komitea on vastaus, oli kysymys mikä tahansa Jos maailma on muuttumassa tai jossain palaa, demari ei hätiköi. Ensin p
      Maailman menoa
      9
      965
    7. En mahda sille mitään

      Olet ihanin ja tykkään sinusta todella paljon.
      Ikävä
      36
      827
    8. Joko olet luovuttanut

      Mun suhteen?
      Ikävä
      60
      771
    9. Haluaisitko oikeasti

      Vakavampaa välillemme vai tämäkö riittää
      Ikävä
      49
      754
    10. Mitä se olisi

      Jos sinä mies saisit sanoa kaivatullesi mitä vain juuri nyt. Ilman mitään seuraamuksia yms. Niin mitä sanoisit?
      Ikävä
      41
      735
    Aihe