657ddf182b
Implement range of memory access validation instead of pointer and use it. Export new validator to users. Various small fixes
nnosov2020-05-06 11:49:22 +04:00
f483155e07
special handling of CFA pseudo register since libunwind provides wron value
nnosov2020-05-02 13:56:39 +04:00
d1441b3b6f
haide frame storage from user and introduce separate method pst_get_register() to obtain register value within function's stack frame
nnosov2020-05-02 13:51:31 +04:00
1825515ca0
move printing of stack trace headers from library to user's program
nnosov2020-04-25 09:09:55 +04:00
3e72295ee9
rename logger type. disable debug logging by default. extend test to check pointer validity
nnosov2020-04-25 08:05:45 +04:00
7206abc6a9
check pointer's validity. clean-up unused bits in parameter's value
nnosov2020-04-25 07:38:46 +04:00
41d8a846fb
handle syscall's return codes more accurate
nnosov2020-04-25 07:35:53 +04:00
a0475eeda7
make visible to user libunwind function's context, SP register and CFA
nnosov2020-04-16 20:54:53 +04:00
a36d8ff7b9
update information about pst interface
nnosov2020-04-16 20:23:03 +04:00
bc1b1577a5
cleanup of external interface info
nnosov2020-04-16 20:18:37 +04:00
36786245c7
small optimization in code related to handling DWARF information about parameter
nnosov2020-04-16 19:20:19 +04:00
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.
nnosov2020-04-16 18:56:40 +04:00
f9f26f5f7d
use bitset for parameter state instead of separate boolean fields
nnosov2020-04-16 13:45:26 +04:00
5a1dd37dd4
check that basic handling (actually, unwind_simple) wer performed and if not, do it from unwind_pretty
nnosov2020-04-16 13:27:33 +04:00
cdacdce8e5
fix compilation errors related to C specifics
nnosov2020-02-05 16:14:52 +04:00
ef055f0324
various changes related to refactor of header files
nnosov2020-02-05 12:45:06 +04:00
064951f4c8
build shared version of the library
nnosov2020-02-05 12:23:47 +04:00
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
nnosov2020-02-05 12:13:26 +04:00
810ce7519d
do not use struct function pointers elsewhere, use them only in case when polymorphysm needed
nnosov2020-02-03 15:04:09 +04:00
b79db14d0c
pst_parameter: do not return failure if location expression calculation failed, because it don't allow to add parameter to function
nnosov2020-02-02 15:53:16 +04:00
cfb9ac91c8
remove extra logging
nnosov2020-02-02 15:46:13 +04:00
6f0f3fa795
handle_location: fix value retrieval
nnosov2020-02-02 15:44:52 +04:00
1d50b04ea0
dwarf_stack: fix set/get value
nnosov2020-02-02 15:44:21 +04:00
99f4bd72be
fixed several bugs related to refactoring
nnosov2020-02-02 14:58:53 +04:00
5e6b78a82c
fix compilation and linking issues. use __cxa_demangle for now so depend on libstdc++
nnosov2020-02-02 12:54:54 +04:00
dbaffdf689
fix most of compilation warnings
nnosov2020-02-02 12:28:43 +04:00
0064239418
call_site_XXX moved to C language, added my oldest hash_map implementation
nnosov2020-02-01 21:19:55 +04:00
dbd8e31129
define pst_log macro to use global log
nnosov2020-02-01 18:11:50 +04:00
7c13dfa9e1
define pst_alloc & pst_free macro to use global allocator
nnosov2020-02-01 17:57:43 +04:00
e27f0c5c18
move pst_call_site & pst_parameter to C language and separate them
nnosov2020-02-01 17:09:12 +04:00
8251ba526f
all code except of pst_function & pst_handler rewritten on C language. Logger nad Allocator decided to be a global for all library
nnosov2020-02-01 15:19:55 +04:00
fcdb15ba95
remove unused code from dwarf_stack
nnosov2020-01-29 10:05:18 +04:00
340abfc31c
fix pst_alloc_init.. names and stub for pst_alloc_init_cutom()
nnosov2020-01-28 20:17:47 +04:00
701976beb0
remove next_frame from pst_context since it's not used
nnosov2020-01-28 19:27:25 +04:00
097c0f93d3
added stub for pst_alloc_fini()
nnosov2020-01-28 19:26:33 +04:00
e62db2210d
move pst_context to separate files
nnosov2020-01-28 16:44:43 +04:00
6da79926d0
add simple libc-based allocat to extend it in future
nnosov2020-01-28 16:31:32 +04:00
c2fdeccd34
move register-related code to separate files, move DWARF module & handle to pst_context, move get_frame() from pst_handler to pst_function
nnosov2020-01-28 14:24:32 +04:00
f9635841f6
right caculation of DW_OP_GNU_entry_value, use caller's information
nnosov2020-01-26 15:36:33 +04:00
daf58bce70
save call-site parameters in caller
nnosov2020-01-25 17:25:59 +04:00
4f94a9e1c2
dwarf stack: save expression and add is_exp_equal() to compare expressions
nnosov2020-01-25 17:24:36 +04:00
e48cfddeb0
print_stack() raw implementation
nnosov2020-01-25 17:22:45 +04:00
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
CFA-deref
nnosov2020-01-24 16:54:05 +04:00