Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!tut.cis.ohio-state.edu!snorkelwacker!mintaka!spdcc!esegue!compilers-sender From: dik@cwi.nl (Dik T. Winter) Newsgroups: comp.compilers Subject: Re: Help on disassembler/decompilers Keywords: code, assembler, debug Message-ID: <2099@charon.cwi.nl> Date: 10 Sep 90 14:22:46 GMT References: <2524@l.cc.purdue.edu> Sender: compilers-sender@esegue.segue.boston.ma.us Reply-To: dik@cwi.nl (Dik T. Winter) Organization: CWI, Amsterdam Lines: 22 Approved: compilers@esegue.segue.boston.ma.us In article <2524@l.cc.purdue.edu> hrubin@l.cc.purdue.edu (Herman Rubin) writes: > > [Turning object code back into assembler is pretty straightforward, and > > every debugger does it. Someone else asked about disassembling into higher > > level languages a little while ago, but I didn't see any responses. -John] > > It is not quite that straightforward, and disassemblers can be somewhat > hard to get. Debuggers usually use object code set up specially for > debugging, with certain features available. Some debuggers even require > that the source code be included in such a way that this can be displayed > at debug time. Disassembly frequently is even ambiguous. Moreover, debuggers know at what addresses instructions start, a disassembler does not have knowledge about it. This gets hairy if the program uses indirect jumps on a machine with variable sized instructions. I once wrote a disassembler for a CDC Cyber PPU. It tried to follow all code threads, but failed horribly in this aspect; and had to be guided. -- dik t. winter, cwi, amsterdam, nederland dik@cwi.nl -- Send compilers articles to compilers@esegue.segue.boston.ma.us {ima | spdcc | world}!esegue. Meta-mail to compilers-request@esegue.