Commit Graph
24 Commits
Author SHA1 Message Date
nnosov 80018f8808 use CFA derived from DWARF info instad of libunwind caller's SP since
libunwind don't show right SP for callers in shared objects
2020-01-24 16:54:05 +04:00
nnosov 48f37ec3e8 better logging formatting, print_registers() 2020-01-24 15:45:33 +04:00
nnosov 952b71d9d3 bunch of changes. mainly is: got right CFA from both libunwind & libdw 2020-01-23 19:49:51 +04:00
nnosov dcfbcd0952 implemented base support of DWARF lexical block and call site 2020-01-17 09:44:59 +04:00
nnosov 1e395e5cac fix for find dwarf CU for function, fix for find library base address 2020-01-16 16:51:36 +04:00
nnosov ba9db80f07 introduce parent frame 2020-01-16 16:22:17 +04:00
nnosov ab58889d93 better debug messaging 2020-01-16 15:30:05 +04:00
nnosov 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
2020-01-16 14:54:42 +04:00
nnosov 132e0d3854 temporary extract from pst_parameter location dwarf handling to
handle_location()
2020-01-16 12:33:07 +04:00
nnosov a60045d9f4 do not handle return parameter value since it's unaccessible in stack
trace (no functions returns)
2020-01-14 19:28:38 +04:00
nnosov e2bdd31cef use internal linkedlist implementation instead of std::list,
std::vector. make stack trace a bit more complex
2020-01-14 18:03:11 +04:00
nnosov b49318cd11 retrieve return value of function, show frame number on print 2020-01-14 16:57:21 +04:00
nnosov 4bc8c15918 take care that parameter may have 'undefined' or 'constant' values 2020-01-14 14:54:47 +04:00
nnosov 2b3db0f936 better and more dwarf info printing 2020-01-14 14:20:03 +04:00
nnosov eb9dc1341d introduce printing functions and their parameters on base of dwarf info 2020-01-14 13:47:08 +04:00
nnosov fc6a81b460 move calc_expression() & get_value() from context to DWARF stack 2020-01-14 12:21:00 +04:00
nnosov 5ee3935dc2 move out value retrieval from expression evaluation. add get_value() 2020-01-14 11:48:08 +04:00
nnosov a1954685e5 add suppoert of dw_op_fbreg & dw_op_call_frame_cfa DWARF operations and
use them
2020-01-13 18:37:56 +04:00
nnosov 50bebda6a1 initial implementation of DWARF Expression state machine parsing and
it's usage for retrieve arguments/variables of function
2020-01-13 17:21:46 +04:00
nnosov 08ba87ce98 raw and dirty implementation of handling of constant, stack,
arithmetical and logical operations on DWARF expression stack machine
2020-01-11 18:56:03 +04:00
nnosov 58f14a695d extract context from handler and move it to common. define functions to
use in calculation of DWARF expressions
2020-01-11 14:56:45 +04:00
nnosov 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
2020-01-09 18:49:45 +04:00
nnosov 83fc2bc3ef beterr DWARF expressions logging, trying to get CFI info for registers 2020-01-05 12:29:18 +04:00
nnosov 1f3a6237ac pstrace: initial commit 2020-01-04 14:28:08 +04:00