Commit Graph

  • dcfbcd0952 implemented base support of DWARF lexical block and call site nnosov 2020-01-17 09:44:59 +04:00
  • e215c6af76 added dw_op_deref_size, adjusted dw_op_deref, fixed DW_OP_GNU_entry_value handling nnosov 2020-01-17 09:44:01 +04:00
  • 6d6f0d2d45 another one fix to dw_op_breg_x. try to calc DW_OP_GNU_entry_value in caller frame nnosov 2020-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 nnosov 2020-01-16 17:21:26 +04:00
  • 1e395e5cac fix for find dwarf CU for function, fix for find library base address nnosov 2020-01-16 16:51:36 +04:00
  • 18450ef1b2 added Makefile for framework nnosov 2020-01-16 16:41:33 +04:00
  • 7b69c304a9 .gitignore for framework nnosov 2020-01-16 16:41:03 +04:00
  • ba9db80f07 introduce parent frame nnosov 2020-01-16 16:22:17 +04:00
  • ab58889d93 better debug messaging nnosov 2020-01-16 15:30:05 +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 nnosov 2020-01-16 14:54:42 +04:00
  • f044133d8a small changes nnosov 2020-01-16 14:52:34 +04:00
  • eadbe9a80a small comment that seems that DW_OP_GNU_entry_value does something that DW_OP_entry_value nnosov 2020-01-16 12:34:02 +04:00
  • 132e0d3854 temporary extract from pst_parameter location dwarf handling to handle_location() nnosov 2020-01-16 12:33:07 +04:00
  • 80285dd94e fix SF in print_expr_block() due to wrong dereference of stack pointer to memory location nnosov 2020-01-16 12:31:55 +04:00
  • 06385ba36e add more useful links to readme nnosov 2020-01-16 12:30:59 +04:00
  • ece42e1c2c fix markdown syntax nnosov 2020-01-15 13:59:06 +04:00
  • 12fd67bcd0 Useful lins added nnosov 2020-01-15 13:55:13 +04:00
  • a60045d9f4 do not handle return parameter value since it's unaccessible in stack trace (no functions returns) nnosov 2020-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 nnosov 2020-01-14 18:03:11 +04:00
  • b49318cd11 retrieve return value of function, show frame number on print nnosov 2020-01-14 16:57:21 +04:00
  • 4bc8c15918 take care that parameter may have 'undefined' or 'constant' values nnosov 2020-01-14 14:54:47 +04:00
  • 2b3db0f936 better and more dwarf info printing nnosov 2020-01-14 14:20:03 +04:00
  • eb9dc1341d introduce printing functions and their parameters on base of dwarf info nnosov 2020-01-14 13:47:08 +04:00
  • fc6a81b460 move calc_expression() & get_value() from context to DWARF stack nnosov 2020-01-14 12:18:24 +04:00
  • 5ee3935dc2 move out value retrieval from expression evaluation. add get_value() nnosov 2020-01-14 11:48:08 +04:00
  • 6b43827894 create and use mapping between DW_OP_Rex/breg(x) and appropriate platform-dependent register number nnosov 2020-01-14 09:12:00 +04:00
  • b955926d86 added DW_OP_GNU_entry_value operation handling nnosov 2020-01-14 08:56:49 +04:00
  • fdfce06ee0 one bug fix & reformeatting of the code nnosov 2020-01-13 22:13:39 +04:00
  • 2f7dfeca0b small reformatting of the code nnosov 2020-01-13 22:13:08 +04:00
  • 964c6d888e remove unused code nnosov 2020-01-13 19:44:18 +04:00
  • 71204c7a21 update readme nnosov 2020-01-13 19:44:06 +04:00
  • f05d46b855 added email address of an author nnosov 2020-01-13 19:41:45 +04:00
  • f5914dc18a update readme.md nnosov 2020-01-13 19:02:39 +04:00
  • 1abe271d10 small refactoring and bug fixing of DWARF operations processing nnosov 2020-01-13 18:49:11 +04:00
  • a1954685e5 add suppoert of dw_op_fbreg & dw_op_call_frame_cfa DWARF operations and use them nnosov 2020-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 nnosov 2020-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 nnosov 2020-01-11 18:56:03 +04:00
  • abcf050fe8 add gitignore nnosov 2020-01-11 15:00:04 +04:00
  • 58f14a695d extract context from handler and move it to common. define functions to use in calculation of DWARF expressions nnosov 2020-01-11 14:56:45 +04:00
  • 18b8b37ca3 added some useful info about compiler options nnosov 2020-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 nnosov 2020-01-09 18:49:45 +04:00
  • 83fc2bc3ef beterr DWARF expressions logging, trying to get CFI info for registers nnosov 2020-01-05 12:29:18 +04:00
  • 1f3a6237ac pstrace: initial commit nnosov 2020-01-04 14:28:08 +04:00
  • 82c73720b1 Initial commit nnosov 2020-01-04 14:25:19 +04:00