nnosov
|
f88b5f8a5a
|
small readme formatting changes
|
2020-05-26 22:54:05 +04:00 |
|
nnosov
|
5b96c0524e
|
Better log messages, small user-visible info fixes
|
2020-05-26 22:51:06 +04:00 |
|
nnosov
|
786cfddc95
|
Changes about project goals in readme
|
2020-05-19 00:52:29 +04:00 |
|
nnosov
|
5425dc7d8b
|
chnage readme
|
2020-05-07 18:29:57 +04:00 |
|
nnosov
|
657ddf182b
|
Implement range of memory access validation instead of pointer and use
it. Export new validator to users.
Various small fixes
|
2020-05-06 11:49:22 +04:00 |
|
nnosov
|
f483155e07
|
special handling of CFA pseudo register since libunwind provides wron
value
|
2020-05-02 13:56:39 +04:00 |
|
nnosov
|
d1441b3b6f
|
haide frame storage from user and introduce separate method
pst_get_register() to obtain register value within function's stack
frame
|
2020-05-02 13:51:31 +04:00 |
|
nnosov
|
1825515ca0
|
move printing of stack trace headers from library to user's program
|
2020-04-25 09:09:55 +04:00 |
|
nnosov
|
3e72295ee9
|
rename logger type. disable debug logging by default. extend test to
check pointer validity
|
2020-04-25 08:05:45 +04:00 |
|
nnosov
|
7206abc6a9
|
check pointer's validity. clean-up unused bits in parameter's value
|
2020-04-25 07:38:46 +04:00 |
|
nnosov
|
41d8a846fb
|
handle syscall's return codes more accurate
|
2020-04-25 07:35:53 +04:00 |
|
nnosov
|
187032a773
|
introduce pointer dereference validation method
|
2020-04-23 09:22:56 +04:00 |
|
nnosov
|
46bcfad427
|
small refactoring. memory leak fix
|
2020-04-23 09:22:20 +04:00 |
|
nnosov
|
e18fdd78a1
|
support of volatile & revalue references
|
2020-04-22 13:47:57 +04:00 |
|
nnosov
|
b35f9fcb01
|
rename function-related function's names
|
2020-04-22 13:33:36 +04:00 |
|
nnosov
|
39f34d7814
|
better printing of parameters. export access to parameter's children
|
2020-04-22 13:05:04 +04:00 |
|
nnosov
|
e5531f9986
|
add support of pointers to functions, small refactoring of pst_parameter
|
2020-04-19 11:53:32 +04:00 |
|
nnosov
|
ab5863c981
|
Update README.md
|
2020-04-18 21:58:27 +04:00 |
|
nnosov
|
a0475eeda7
|
make visible to user libunwind function's context, SP register and CFA
|
2020-04-16 20:54:53 +04:00 |
|
nnosov
|
a36d8ff7b9
|
update information about pst interface
|
2020-04-16 20:23:03 +04:00 |
|
nnosov
|
bc1b1577a5
|
cleanup of external interface info
|
2020-04-16 20:18:37 +04:00 |
|
nnosov
|
36786245c7
|
small optimization in code related to handling DWARF information about
parameter
|
2020-04-16 19:20:19 +04:00 |
|
nnosov
|
c7e9925efe
|
extend to user types of parameter and initialize them. introduce
'typename' to parameter_info, it's C/C++ name of parameter type. rewrite
parameter printing using new capabilities.
|
2020-04-16 18:56:40 +04:00 |
|
nnosov
|
f9f26f5f7d
|
use bitset for parameter state instead of separate boolean fields
|
2020-04-16 13:45:26 +04:00 |
|
nnosov
|
5a1dd37dd4
|
check that basic handling (actually, unwind_simple) wer performed and if
not, do it from unwind_pretty
|
2020-04-16 13:27:33 +04:00 |
|
nnosov
|
62a6faeb76
|
clean-up Makefile
|
2020-04-16 13:26:18 +04:00 |
|
nnosov
|
aae7ee6a20
|
tune eclipse project settings
|
2020-04-16 13:25:53 +04:00 |
|
nnosov
|
f3dc0a0e04
|
Added 'Usage' chapter to readme
|
2020-04-06 09:34:16 +04:00 |
|
nnosov
|
3317cd212b
|
exprt next_function, next_parameter function_info, parameter_info to
external interface of the library
|
2020-04-05 14:59:41 +04:00 |
|
nnosov
|
e2e7535149
|
introduce separate print functions for 'simple' and 'pretty' variands of
unwinding
|
2020-04-05 13:33:19 +04:00 |
|
nnosov
|
3adc8eb1ef
|
remove unused includes
|
2020-04-05 13:32:03 +04:00 |
|
nnosov
|
5b4d7d0349
|
refactor of function unwinding
|
2020-03-07 10:15:56 +04:00 |
|
nnosov
|
09f6432061
|
fix include path
|
2020-02-09 20:09:41 +04:00 |
|
nnosov
|
259ad6b68d
|
remove libstdc++ from dependencies
|
2020-02-09 20:09:24 +04:00 |
|
nnosov
|
1d43624115
|
update readme
|
2020-02-09 20:09:01 +04:00 |
|
nnosov
|
c09c6c1f1b
|
make non-public context functions static
|
2020-02-05 22:35:08 +04:00 |
|
nnosov
|
c4376721ad
|
minor allocator changes
|
2020-02-05 22:34:48 +04:00 |
|
nnosov
|
d52b92b8dc
|
make dw_op_XX static
|
2020-02-05 22:34:21 +04:00 |
|
nnosov
|
e2c9ba33ba
|
change expternal interface function names and description
|
2020-02-05 19:48:18 +04:00 |
|
nnosov
|
80ccab3948
|
add _GNU_SOURCE to project configuration for fix indexing of source code
by Eclipse
|
2020-02-05 17:06:52 +04:00 |
|
nnosov
|
80a4df4373
|
fix Makefile clean, fix compilation warnings
|
2020-02-05 16:30:40 +04:00 |
|
nnosov
|
cdacdce8e5
|
fix compilation errors related to C specifics
|
2020-02-05 16:14:52 +04:00 |
|
nnosov
|
ef055f0324
|
various changes related to refactor of header files
|
2020-02-05 12:45:06 +04:00 |
|
nnosov
|
064951f4c8
|
build shared version of the library
|
2020-02-05 12:23:47 +04:00 |
|
nnosov
|
24efc4580b
|
implement external interface to library and use it in tests. need to be
reworked a bit to use file descriptor or buffer provided to callse
|
2020-02-05 12:13:26 +04:00 |
|
nnosov
|
d4e9307fe1
|
add pst_handler_new()
|
2020-02-05 12:12:02 +04:00 |
|
nnosov
|
bfb9200d3a
|
Merge pull request #2 from nnosov/move_to_c
code hierarchy refactoring
|
2020-02-05 09:42:24 +04:00 |
|
nnosov
|
3c7105eb97
|
code hierarchy refactoring
|
2020-02-05 09:41:22 +04:00 |
|
nnosov
|
f3c50f6472
|
Merge pull request #1 from nnosov/move_to_c
Move to c
|
2020-02-05 07:12:36 +04:00 |
|
nnosov
|
c21c623be4
|
handle DW_AT_low_pc & DW_AT_call_tail_call for call-site
|
2020-02-05 07:02:19 +04:00 |
|
nnosov
|
0d06b02747
|
small refactoring and bug-fixing
|
2020-02-04 19:55:51 +04:00 |
|
nnosov
|
813fe52bf1
|
pst_allocator refactoring, use mutex to access fields
|
2020-02-03 18:06:25 +04:00 |
|
nnosov
|
70e39e14a9
|
refactor dwarf_handler
|
2020-02-03 17:55:33 +04:00 |
|
nnosov
|
ac408ab21a
|
small refactoring
|
2020-02-03 15:46:22 +04:00 |
|
nnosov
|
810ce7519d
|
do not use struct function pointers elsewhere, use them only in case
when polymorphysm needed
|
2020-02-03 15:04:09 +04:00 |
|
nnosov
|
b79db14d0c
|
pst_parameter: do not return failure if location expression calculation
failed, because it don't allow to add parameter to function
|
2020-02-02 15:53:16 +04:00 |
|
nnosov
|
cfb9ac91c8
|
remove extra logging
|
2020-02-02 15:46:13 +04:00 |
|
nnosov
|
6f0f3fa795
|
handle_location: fix value retrieval
|
2020-02-02 15:44:52 +04:00 |
|
nnosov
|
1d50b04ea0
|
dwarf_stack: fix set/get value
|
2020-02-02 15:44:21 +04:00 |
|
nnosov
|
99f4bd72be
|
fixed several bugs related to refactoring
|
2020-02-02 14:58:53 +04:00 |
|
nnosov
|
5e6b78a82c
|
fix compilation and linking issues. use __cxa_demangle for now so depend
on libstdc++
|
2020-02-02 12:54:54 +04:00 |
|
nnosov
|
dbaffdf689
|
fix most of compilation warnings
|
2020-02-02 12:28:43 +04:00 |
|
nnosov
|
abba9f735b
|
rename hash_miltimap.c->cpp
|
2020-02-02 12:15:18 +04:00 |
|
nnosov
|
ef4cb44fb2
|
pst_function reimplemented in C
|
2020-02-02 10:25:40 +04:00 |
|
nnosov
|
836a0a9f29
|
minor refactoring
|
2020-02-01 21:26:07 +04:00 |
|
nnosov
|
0064239418
|
call_site_XXX moved to C language, added my oldest hash_map
implementation
|
2020-02-01 21:19:55 +04:00 |
|
nnosov
|
dbd8e31129
|
define pst_log macro to use global log
|
2020-02-01 18:11:50 +04:00 |
|
nnosov
|
7c13dfa9e1
|
define pst_alloc & pst_free macro to use global allocator
|
2020-02-01 17:57:43 +04:00 |
|
nnosov
|
e27f0c5c18
|
move pst_call_site & pst_parameter to C language and separate them
|
2020-02-01 17:09:12 +04:00 |
|
nnosov
|
8251ba526f
|
all code except of pst_function & pst_handler rewritten on C language.
Logger nad Allocator decided to be a global for all library
|
2020-02-01 15:19:55 +04:00 |
|
nnosov
|
fcdb15ba95
|
remove unused code from dwarf_stack
|
2020-01-29 10:05:18 +04:00 |
|
nnosov
|
340abfc31c
|
fix pst_alloc_init.. names and stub for pst_alloc_init_cutom()
|
2020-01-28 20:17:47 +04:00 |
|
nnosov
|
701976beb0
|
remove next_frame from pst_context since it's not used
|
2020-01-28 19:27:25 +04:00 |
|
nnosov
|
097c0f93d3
|
added stub for pst_alloc_fini()
|
2020-01-28 19:26:33 +04:00 |
|
nnosov
|
e62db2210d
|
move pst_context to separate files
|
2020-01-28 16:44:43 +04:00 |
|
nnosov
|
6da79926d0
|
add simple libc-based allocat to extend it in future
|
2020-01-28 16:31:32 +04:00 |
|
nnosov
|
c2fdeccd34
|
move register-related code to separate files, move DWARF module & handle
to pst_context, move get_frame() from pst_handler to pst_function
|
2020-01-28 14:24:32 +04:00 |
|
nnosov
|
f9635841f6
|
right caculation of DW_OP_GNU_entry_value, use caller's information
|
2020-01-26 15:36:33 +04:00 |
|
nnosov
|
898fa1e5e8
|
add dictionary implementation
|
2020-01-25 17:26:16 +04:00 |
|
nnosov
|
daf58bce70
|
save call-site parameters in caller
|
2020-01-25 17:25:59 +04:00 |
|
nnosov
|
4f94a9e1c2
|
dwarf stack: save expression and add is_exp_equal() to compare
expressions
|
2020-01-25 17:24:36 +04:00 |
|
nnosov
|
e48cfddeb0
|
print_stack() raw implementation
|
2020-01-25 17:22:45 +04:00 |
|
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
|
fdad3480f9
|
colorize log messages written to console correspondingly to severity of
the message
|
2020-01-24 14:57:20 +04:00 |
|
nnosov
|
f48bf41cbb
|
added print_registers() to context
|
2020-01-24 14:43:43 +04:00 |
|
nnosov
|
59cf6fee85
|
remove unneeded file
|
2020-01-23 19:50:49 +04:00 |
|
nnosov
|
4dd3e48309
|
makefile clean-up
|
2020-01-23 19:50:38 +04:00 |
|
nnosov
|
d78a716df5
|
readme: added good link to explanation what is CFA on X86_64
|
2020-01-23 19:50:20 +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
|
6e6e0c22ed
|
add output about frame state to gdb script
|
2020-01-23 19:27:38 +04:00 |
|
nnosov
|
a919d73fb8
|
add core file, .gdb_history and /*.txt to gitignore
|
2020-01-22 20:08:25 +04:00 |
|
nnosov
|
a427b63cb5
|
run trace under GDB in batch mode and print SP in every frame
|
2020-01-22 20:04:39 +04:00 |
|
nnosov
|
f1a2039996
|
update readme with a good link to DW_AT_GNU_call_site_XXX explanation
|
2020-01-20 10:58:17 +04:00 |
|
nnosov
|
15a56dfc63
|
fix dw_op_deref: fetch 8 byte value instead of 4
|
2020-01-17 09:47:28 +04:00 |
|
nnosov
|
dcfbcd0952
|
implemented base support of DWARF lexical block and call site
|
2020-01-17 09:44:59 +04:00 |
|
nnosov
|
e215c6af76
|
added dw_op_deref_size, adjusted dw_op_deref, fixed
DW_OP_GNU_entry_value handling
|
2020-01-17 09:44:01 +04:00 |
|
nnosov
|
6d6f0d2d45
|
another one fix to dw_op_breg_x. try to calc DW_OP_GNU_entry_value in
caller frame
|
2020-01-16 17:48:06 +04:00 |
|
nnosov
|
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
|
2020-01-16 17:21:26 +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 |
|