Reva includes a debugger, which can be accessed in two ways:
- From the command-line, add "-d": reva -d
- Within Reva, type needs debugger
Once active, the debugger will trigger whenever an exception occurs. For example:
ok> 0 ! EDI ESI EBX EDX ECX EAX EBP ESP EIP 08049914 0806DA3C 00000000 0806DA94 00000000 00000000 00000001 BF81E274 0806DAA1 Exception SIGSEGV in: ! ==> 08049E19 interp ==> 0804A4BA catch 0806DAA1 89 18 mov [eax],ebx 0806DAA3 AD lodsd 0806DAA4 AD lodsd 0806DAA5 C3 ret
Notice the register dump, and the reasonable attempt at back-trace. Because of optimizations, Reva cannot always give the correct back-trace.
The disassembly will proceed until a 'ret' or similar instruction has been reached. To continue the disassembly, type see without arguments and press ENTER.