revava is a single-pass disassembler that reads in a file containing a program intended for an Atmel AVR microcontroller, and outputs assembly code that can be input to an AVR assembler. The output of revava contains assembler mnemonics where possible and dc.W declarations where no mnemonic matches the data. The comment field for each assembly instruction contains the address from the object code and the destination address for branches, calls, jumps, etc. In the case where there are multiple assembly instructions that assemble to the same opcode, all choices are presented in a group with all but the first choice commented out.
Fenris is a multipurpose tracer, debugger, and code analysis tool that detects and documents high-level language constructions, can recover symbols, graph program execution flow, detect internal functions, recover symbol tables, and deal with anti-debugging protection. It features a command-line interface as well as a SoftICE-alike GUI and Web frontend.
The uda is program for disassembling a binary file. It is able to read different binary file formats and different instruction sets. The functionality is based on plugins and external definition of an instruction set. It has a plugin for reading the Unix ELF format, and a plugin for reading the instruction stream and instruction set for the Intel PIII processor.
Debugtrace is a tool for printing execution traces that are helpful for debugging. It can generate instruction or call traces. It shows every instruction as it is executed, the values of registers that are written, and the memory that is read and written. It uses instrumentation rather than the debugging API, so it is much faster than doing the same thing with gdb. You can customize it to your own debugging needs. The tool works on Linux ARM, IA32, and EM64T.