Commit Graph

25 Commits

Author SHA1 Message Date
Théophile Bastian 0143515709 Upload docs to tobast.fr 2018-04-12 13:40:34 +02:00
Théophile Bastian 242bfce9e1 Add `elf_local_rip` to UnwindContext (debug tool) 2018-04-12 13:24:31 +02:00
Théophile Bastian 4369a4f3cc Handle cleanly the absence of RBP 2018-04-12 13:24:07 +02:00
Théophile Bastian 0dd3ca94ce Fix dump_my_stack to handle cleanly end of unwind 2018-04-12 13:23:39 +02:00
Théophile Bastian f25093ffce Remove debug output 2018-04-11 17:07:50 +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 e567039227 Add a threaded test (harder to check unwinding end) 2018-04-06 17:36:16 +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 18d3655890 Adapt test files 2018-04-05 19:18:06 +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 0bd5a40bce Add some test files 2018-04-04 14:47:54 +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 3c9dae009e Compile in debug mode 2018-04-03 13:52:40 +02:00
Théophile Bastian 7ca8329840 Modify Makefile accordingly 2018-04-03 12:23:50 +02:00
Théophile Bastian 13283d8e2a Add MemoryMap to read /proc/[pid]/maps 2018-04-03 12:23:15 +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
Théophile Bastian 37c54424a3 Enhance readme 2018-03-27 18:49:22 +02:00
Théophile Bastian 572334e87d Initial commit 2018-03-27 18:47:47 +02:00