Commit Graph

216 Commits

Author SHA1 Message Date
Jeremy
7929d239bd
Create a cache for CU srcfiles 2023-11-08 20:47:29 -05:00
Jeremy
2f8e1a5ff7
More work to get inline resolution going 2023-11-08 19:46:31 -05:00
Jeremy
1ced7c8dc3
Minor tweaks 2023-11-08 19:41:13 -05:00
Jeremy
6fbedd0ed6
Commend out prints 2023-11-08 14:59:53 -05:00
Jeremy
5bf66156cd
Minor fixes 2023-11-08 14:47:15 -05:00
Jeremy
7ffec7b3c0
Inital work to walk inline tree and show inlined calls 2023-11-08 13:05:39 -05:00
Jeremy
93de7b7060
spacing fix 2023-11-07 00:05:50 -05:00
Jeremy
6d62936c7b
cache path and line number 2023-11-07 00:05:32 -05:00
Jeremy
9096531e23
Either LUT or walk for line info based on cache mode 2023-11-06 23:20:11 -05:00
Jeremy
fef039ba26
Setup a lookup table for line info 2023-11-06 22:38:21 -05:00
Jeremy
781c30f63f
Fix build 2023-11-06 15:16:33 -05:00
Jeremy Rifkin
98368fb417
CMake improvements (#57) 2023-11-06 12:12:07 -05:00
Jeremy
ae5d2392fe
More std:: 2023-10-08 22:48:12 -04:00
Jeremy
ae484f0ed2
Improve terminate handler behavior when there's no active exception and also try to print a trace for non-cpptrace terminates 2023-10-08 14:55:21 -04:00
Jeremy
f6f64954de
Sonar suggestion 2023-10-07 17:43:39 -04:00
Jeremy
1d514c1532
Windows fix 2023-10-07 17:42:11 -04:00
Jeremy
05c3f7160b
Add specialized terminate handler and add error handling info to the README. Also updated demo. 2023-10-07 17:34:49 -04:00
Jeremy
2e0fa880bc
Small fixes 2023-10-07 15:05:50 -04:00
Jeremy
8bb8a2020c
Add some utilities for exception handling and detecting whether stderr is a terminal 2023-10-07 14:59:04 -04:00
Jeremy
df6c22f640
Sonar fix 2023-10-07 14:04:29 -04:00
Jeremy
4d2580185f
Sonar fixes 2023-10-07 13:59:57 -04:00
Jeremy
a422e132d4
Comments and sonar fixes 2023-10-07 13:43:39 -04:00
Jeremy Rifkin
b26c5e4ec8
Refactor cpptrace exception objects and simplify interface (#54) 2023-10-06 20:25:30 -04:00
Jeremy
bda3e2b169
Fix for msvc 2023-10-06 01:23:46 -04:00
Jeremy
2b1a2c7a19
Fix useless cast warning 2023-10-06 00:53:40 -04:00
Jeremy
2f507cc24d
Fix msvc build 2023-10-05 12:55:44 -04:00
Jeremy
0c03ac7a01
Refactor stacktrace::print 2023-10-05 12:41:52 -04:00
Jeremy
c3a27d15fb
Update trace objects to just be aggregates 2023-10-05 12:33:43 -04:00
Jeremy
53ceb99b46
Sonar fixes: More nullptr literal use, take std::fuction by const&, and [[noreturn]] 2023-10-05 12:08:47 -04:00
Jeremy
af181bf981
Disabled on sonar 2023-10-05 11:16:55 -04:00
Jeremy
1b9e5916f6
Some fixes 2023-10-05 11:07:46 -04:00
Jeremy
12b80f7af1
Some fixes 2023-10-05 11:01:03 -04:00
Jeremy
3b5064f1ff
Fix forwarding issue 2023-10-05 10:58:03 -04:00
Jeremy
435b3cd001
Small fixes 2023-10-04 18:23:19 -04:00
Jeremy
4324901cd1
Fix stackwalk64 architecture detection 2023-10-04 15:31:59 -04:00
Jeremy
3cdcc847c9
Fix gcc 5 2023-10-04 14:30:17 -04:00
Jeremy
15b2f36934
Update warning supression 2023-10-04 13:14:21 -04:00
Jeremy
81b2e46df1
Support stackwalk64 for 32-bit x86 2023-10-04 13:13:48 -04:00
Jeremy
b80026596f
Some warning fixes 2023-10-04 13:09:45 -04:00
Jeremy
b236da4a0b
Patch for compilation on 32-bit msvc 2023-10-02 17:30:06 -04:00
Jeremy
909ce8155f
Remove some old junk from the universal mach-o bodge 2023-10-02 11:01:21 -04:00
Jeremy Rifkin
fcd0dcc62b
Adjust program counters for execinfo and capturestackbacktrace too (#50) 2023-10-02 11:00:13 -04:00
Jeremy
b46ebe7f54
Update libdwarf code to remove fat mach-o bodge and properly handle fat mach-o files 2023-09-30 19:28:35 -04:00
Jeremy
d4bc913607
Setup global dwarf_resolver cache for dwarf resolving 2023-09-30 03:37:16 -04:00
Jeremy
e82f6e360f
Two small refactors 2023-09-30 03:36:07 -04:00
Jeremy
d964842bdb
Refactor some helper functions and wrappers for dawrf into another file 2023-09-29 15:13:35 -04:00
Jeremy
d84a3167d9
Add cache mode config 2023-09-29 12:50:47 -04:00
Jeremy
93dde93802
Caching and optimization work for dwarf 2023-09-29 11:09:17 -04:00
Jeremy
59b5e80256
Adjust pc for better line number reporting with StackWalk64 2023-09-24 18:21:41 -04:00
Jeremy Rifkin
6de61e7755
Add StackWalk64 backend (#48) 2023-09-24 17:30:56 -04:00
Jeremy Rifkin
c94b03ae6e
Refactor and rewrite a number of dwarf handling methods (#47)
Discard old implementations in favor of new implementations that are
safer and cleaner
2023-09-24 03:25:23 -04:00
Jeremy Rifkin
183cdf5a1c
Error handling improvements (#46) 2023-09-23 17:46:26 -04:00
Jeremy Rifkin
76fc93639e
Properly handle dwarf errors (#43) 2023-09-22 19:54:56 -04:00
Jeremy
f69448f781
Try to fix test and build workflows 2023-09-22 12:17:07 -04:00
Jeremy
dd928b249b
Add max_depth overloads 2023-09-22 12:04:25 -04:00
Jeremy
631d00470d
Handle an edge case in the dwarf code 2023-09-22 10:22:58 -04:00
Jeremy
1b0b7a43ea
Added trace::current() methods 2023-09-21 21:45:01 -04:00
Jeremy
99230cb8fe
Add support for gnu debuglink 2023-09-21 19:23:10 -04:00
Jeremy Rifkin
1689487978
Improve Mach-O support (#40) 2023-09-21 19:09:37 -04:00
Jeremy
214dd1df36
Lock around libdwarf calls 2023-09-20 18:28:55 -04:00
Jeremy
33c8cea2f9
Quick fixes 2023-09-20 17:46:34 -04:00
Jeremy
ddcfbe0a88
Column handling fixes 2023-09-20 17:39:51 -04:00
Jeremy
209ce45157
Library interface improvements 2023-09-20 17:38:57 -04:00
Jeremy
2324563290
Temp fix for CI 2023-09-20 09:44:37 -04:00
Jeremy
55941eaf7e
More quick fixes 2023-09-19 19:13:50 -04:00
Jeremy
08e5b021de
More quick fixes 2023-09-19 19:07:47 -04:00
Jeremy
c0a15d2677
More quick fixes 2023-09-19 18:57:03 -04:00
Jeremy
5d3755353f
Quick fixes 2023-09-19 18:52:52 -04:00
Jeremy
36174f9216
Improve error handling for object file parsing as well as a lot of cleanup and refactoring 2023-09-19 18:40:39 -04:00
Jeremy
a31fe3dc00
Make stacktrace_frame an aggregate again 2023-09-19 15:36:34 -04:00
Jeremy
799e7a7705
Remove clang-tidy 2023-09-19 15:26:51 -04:00
Jeremy
5c3df2571e
Rename stacktrace_frame.col to column, set a proper sentinel value, and update stacktrace.to_string to not have a tailing newline 2023-09-19 15:17:39 -04:00
Jeremy
137dc78710
Improve dbghelp symbolization thread safety 2023-09-19 11:05:04 -04:00
Jeremy
0620197285
Add winapi demangling 2023-09-19 11:03:45 -04:00
Jeremy
bdf3e89863
Quick fix 2023-09-19 00:31:10 -04:00
Jeremy
704cba5e97
Some updates and cleanup 2023-09-19 00:21:00 -04:00
Jeremy
ccd0ea5e17
Deal with some conversion warnings 2023-09-18 22:41:34 -04:00
Jeremy Rifkin
0b32df64e4
Expand cpptrace API (#37) 2023-09-18 20:33:46 -04:00
Jeremy
640aeadf91
Remove full tracing options 2023-09-18 14:37:27 -04:00
Jeremy Rifkin
94f902e644
Try to get msvc speedtest working (#36) 2023-09-18 01:31:01 -04:00
Jeremy
734c84400c
Fix symbol lookup bug for subprogram cache 2023-09-17 19:42:03 -04:00
Jeremy
eb86ae2131
Optimize DWARF symbol lookup: Preprocessor CUs when they're first queried 2023-09-17 19:23:36 -04:00
Jeremy
cc0876dc94
Fix use after free 2023-09-17 17:18:19 -04:00
Jeremy
c36b47b5bf
Handle DW_AT_abstract_origin 2023-09-17 16:03:34 -04:00
Jeremy
6498c837f5
Forgot to check CU dwarf version 2023-09-17 15:19:24 -04:00
Jeremy
5fcfb34335
Support .debug_aranges for CU lookups 2023-09-17 14:41:10 -04:00
Jeremy
2c4f271e23
Improve die_object::has_attr implementation 2023-09-17 01:51:35 -04:00
Jeremy
d9eadf981d
More refactoring and cleanup 2023-09-17 01:26:34 -04:00
Jeremy
077c839839
Dwarf refactoring: Move walking, pc_in_die, and retrieve_symbol_for_subprogram into the dwarf_resolver. Eliminate passing Dwarf_Debug pointers. 2023-09-17 01:15:03 -04:00
Jeremy
e4eab1d426
Optimize dwarf handling by caching line contexts so the line info table only has to be computed once per TU per object per trace 2023-09-17 00:54:11 -04:00
Jeremy
e47cb7147d
Move some commented out type dwarf tree walking code to the end of the file 2023-09-17 00:52:31 -04:00
Jeremy
5e4e842704
Refactor frame collation from addr2line 2023-09-16 21:54:44 -04:00
Jeremy
fdbc69e18e
Refactor nested namespaces 2023-09-16 21:19:08 -04:00
Jeremy
cc43a23987
Lint fixes 2023-09-16 20:52:30 -04:00
Jeremy
278ee3fcee
Work on improving error handling and some general refactoring. Also trying to bring everything into cpptrace::detail. 2023-09-16 20:46:30 -04:00
Eczbek
4d04352189
Slightly improve cxxabi demangler for real this time (#34) 2023-09-16 15:04:30 -04:00
Jeremy
94514cb259
Fix #32 2023-09-16 14:19:21 -04:00
Jeremy
c8e3f67bc0
DWARF traversal improvements and optimizations 2023-09-16 14:18:34 -04:00
Jeremy
29b3140ddd
Some misc cleanup 2023-09-15 19:55:10 -04:00
Jeremy
9cb840c723
Unconditionally walk DW_TAG_namespace 2023-09-15 16:47:01 -04:00