Commit Graph

9 Commits

Author SHA1 Message Date
Théophile Bastian 81b3419690 Use max(uintptr_t) as error, not assert(0) 2018-06-13 19:13:33 +02:00
Théophile Bastian df2d6179a8 Add a libunwind-powered stack_walker
Preserves stack_walker's interface (one can link against stack_walker or
stack_walker_unwind indifferently).
2018-05-18 11:33:39 +02:00
Théophile Bastian 6854eb56e4 [BREAKING CHANGE] Unwinding stops at the end
This introduces a breaking change: [undefined] was previously
represented by 0, and is now represented by
`numeric_limits<uintptr_t>::max()`
2018-05-16 16:51:01 +02:00
Théophile Bastian ba75dfa95f Fix eh_elf path error
The function `readlink` does not null-terminate its strings…
2018-05-09 15:32:34 +02:00
Théophile Bastian afe2d0b7c7 stack_walker: adapt to switch generation policies 2018-05-02 15:08:37 +02:00
Théophile Bastian 4595bb48fb StackWalker: multiple fixes
Includes adding a few failsafe guards, translating the instruction
pointer before handing it to the eh_elf.so, a few cosmetic changes, ...
2018-04-27 17:31:53 +02:00
Théophile Bastian f7151c6621 Implement missing stack_walker.cpp functions 2018-04-27 11:06:06 +02:00
Théophile Bastian 69e6c10c36 Add fde_handler_for_pc (untested)
This is an abstraction function to get the _fde_yyy function out of the
eh_elf for a given PC
2018-04-26 19:48:00 +02:00
Théophile Bastian f587eadbcc Add a tentative stack walker using eh_elfs
This is only a beginning: this does so far load the appropriate
eh_elf.so files and read a context. Unwinding is still absent.
2018-04-26 19:16:01 +02:00