Commit Graph

13 Commits

Author SHA1 Message Date
Théophile Bastian 242bfce9e1 Add `elf_local_rip` to UnwindContext (debug tool) 2018-04-12 13:24:31 +02:00
Théophile Bastian 0eb6cad1ba Detect end-of-unwind
According to LibUnwind:src/x86_64/Gstep.c:85
(HEAD=c91974f30feac05055621e33ca101a371236c786), the x86_64 ABI states
that the end of the call stack is determined by either a null RBP or an
undefined return-address column in the DWARF.
2018-04-06 19:05:38 +02:00
Théophile Bastian e5b76b3fb1 Update documentation accordingly 2018-04-06 16:51:55 +02:00
Théophile Bastian 36096575ed Remove necessity to copy the stack 2018-04-06 16:38:24 +02:00
Théophile Bastian c4895ed0d1 Make context acquisition behave correctly wrt. calling site
It now actually returns the context at the call site of the function,
instead of somewhere inside DwarfInterpret
2018-04-06 16:26:24 +02:00
Théophile Bastian 97032ee31b Actually able to unwind the stack
This is filled with debug prints, and is quite brutal: it saves the
whole stack. It has to be optimized a lot.

Also, needs a smooth stop when trying to unwind main.
2018-04-05 19:17:02 +02:00
Théophile Bastian cd7c1635aa Plug MemoryMap into DwarfInterpret 2018-04-04 14:42:50 +02:00
Théophile Bastian d893b9138a Move header files to dwarfinterpret/ 2018-04-04 14:42:27 +02:00
Théophile Bastian ea7405e3ba Add in-code documentation and Doxygen settings 2018-03-30 14:27:25 +02:00
Théophile Bastian bf8864e7e6 Acually retrieve dwarf data
Doesn't work for now: still have to take into account the memory map
offsets.
2018-03-30 13:25:05 +02:00
Théophile Bastian 67aef72302 Add ability to evaluate registers' values (UNTESTED) 2018-03-29 13:34:47 +02:00
Théophile Bastian c4a0a38b34 Add debug code to print return address 2018-03-28 16:03:43 +02:00
Théophile Bastian 3932ee09e6 Start library: working singleton class schema 2018-03-28 15:33:36 +02:00