6d6f0d2d45
another one fix to dw_op_breg_x. try to calc DW_OP_GNU_entry_value in caller frame
nnosov2020-01-16 17:48:06 +04:00
524c4fa52d
fixes for operations: dw_op_addr, dw_op_deref, dw_op_breg_x. Dereference memory location if it's last on the dwarf stack
nnosov2020-01-16 17:21:26 +04:00
1e395e5cac
fix for find dwarf CU for function, fix for find library base address
nnosov2020-01-16 16:51:36 +04:00
18450ef1b2
added Makefile for framework
nnosov2020-01-16 16:41:33 +04:00
7b69c304a9
.gitignore for framework
nnosov2020-01-16 16:41:03 +04:00
1cddd773bc
use two stage unwinding: 1st is simply detection of function name using libunwind and save functions cursor. 2nd - use dwarf information to cath as more info as possible. this approach also allows to dereference DW_OP_GNU_value operation since it need access to caller frame from callee context
nnosov2020-01-16 14:54:42 +04:00
a60045d9f4
do not handle return parameter value since it's unaccessible in stack trace (no functions returns)
nnosov2020-01-14 19:28:38 +04:00
e2bdd31cef
use internal linkedlist implementation instead of std::list, std::vector. make stack trace a bit more complex
nnosov2020-01-14 18:03:11 +04:00
b49318cd11
retrieve return value of function, show frame number on print
nnosov2020-01-14 16:57:21 +04:00
4bc8c15918
take care that parameter may have 'undefined' or 'constant' values
nnosov2020-01-14 14:54:47 +04:00
2b3db0f936
better and more dwarf info printing
nnosov2020-01-14 14:20:03 +04:00
eb9dc1341d
introduce printing functions and their parameters on base of dwarf info
nnosov2020-01-14 13:47:08 +04:00
fc6a81b460
move calc_expression() & get_value() from context to DWARF stack
nnosov2020-01-14 12:18:24 +04:00
5ee3935dc2
move out value retrieval from expression evaluation. add get_value()
nnosov2020-01-14 11:48:08 +04:00
6b43827894
create and use mapping between DW_OP_Rex/breg(x) and appropriate platform-dependent register number
nnosov2020-01-14 09:12:00 +04:00
1abe271d10
small refactoring and bug fixing of DWARF operations processing
nnosov2020-01-13 18:49:11 +04:00
a1954685e5
add suppoert of dw_op_fbreg & dw_op_call_frame_cfa DWARF operations and use them
nnosov2020-01-13 18:37:56 +04:00
50bebda6a1
initial implementation of DWARF Expression state machine parsing and it's usage for retrieve arguments/variables of function
nnosov2020-01-13 17:21:46 +04:00
08ba87ce98
raw and dirty implementation of handling of constant, stack, arithmetical and logical operations on DWARF expression stack machine
nnosov2020-01-11 18:56:03 +04:00
58f14a695d
extract context from handler and move it to common. define functions to use in calculation of DWARF expressions
nnosov2020-01-11 14:56:45 +04:00
18b8b37ca3
added some useful info about compiler options
nnosov2020-01-11 14:54:57 +04:00
8f7fed23dc
global refactoring: use libunwind to get stack frame, get rid on process base address, better DWARF DW_OP_XXX handling, initial implementation of parameter's values retrieval
nnosov2020-01-09 18:49:45 +04:00
83fc2bc3ef
beterr DWARF expressions logging, trying to get CFI info for registers
nnosov2020-01-05 12:29:18 +04:00