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
Jeremy
8208f43e8a
Experiments with DW_AT_rnglists_base
2023-09-15 16:46:48 -04:00
Jeremy
07a3ac1e41
Cleanup and refactoring of dwarf code. Improve handling of stuff.
2023-09-15 16:46:22 -04:00
Jeremy
f5fd6942e2
Support DW_FORM_rnglistx for dwarf5 ranges computation
2023-09-13 23:07:33 -04:00
Jeremy
906687e2db
Lint fix
2023-09-12 18:23:56 -04:00
Jeremy
5aadb58492
Don't use POSIX basename
2023-09-12 18:08:24 -04:00
Jeremy
d714e70cf6
A couple small cleanup things in libdwarf code, hopefully fixing tests
2023-09-12 17:59:37 -04:00
Jeremy
f95b25f0d6
Handle DW_AT_specification
2023-09-12 13:03:54 -04:00
Jeremy
a862f3d2c8
More thoroughly use -fullPath for atos on macos
2023-09-12 02:38:33 -04:00
Jeremy
70bc51d371
Use -fullPath for atos on macos
2023-09-12 02:07:24 -04:00
Jeremy
2545e6c2e5
Use .dSYM files on macos. Should fix test cases.
2023-09-12 01:19:58 -04:00
Jeremy
54b4701462
Refactor linkage name querying
2023-09-12 00:16:40 -04:00
Jeremy
4b0af6b6d0
Refactor of some dwarf handling and debug improvements
2023-09-11 23:58:00 -04:00
Jeremy
851199d46d
Update middle-end ordering
2023-09-11 12:40:37 -04:00
Jeremy
db4f67d352
Lint fixes
2023-09-11 12:12:01 -04:00
Jeremy
5dc819186e
Baseline for middle-end system
2023-09-11 11:57:01 -04:00
Jeremy
09ccc95814
Fix lint
2023-09-11 10:36:57 -04:00
Jeremy
55e4aaceb0
Update optional implementation
2023-09-11 10:31:41 -04:00
Jeremy
dd7b8eba9c
basic optional implementation
2023-09-11 09:37:11 -04:00
Jeremy Rifkin
95ee2a815c
CI and dwarf work ( #30 )
2023-09-10 19:46:01 -04:00
Jeremy
0e27da8c11
Some symbol backend refactoring, get rid of pimpl nonsense
2023-08-31 01:21:22 -04:00
Jeremy Rifkin
6ed6e623ed
Initial work to add libdwarf as a back-end ( #24 )
2023-08-30 12:14:17 -04:00
Jeremy
d72e30af12
Fix paths with spaces
2023-08-27 21:46:16 -04:00
Jeremy
6ede6f6f53
Make the linter happy (for real x2)
2023-08-27 21:34:15 -04:00
Jeremy
c48f37cb68
Make the linter happy (for real)
2023-08-27 21:31:39 -04:00
Jeremy
e60fa2c388
Make the linter happy
2023-08-27 21:02:09 -04:00
Jeremy
fb258f0671
Handle empty addr2line input
2023-08-27 20:54:34 -04:00
Jeremy
0977253505
Address fopen errors
2023-08-27 20:46:00 -04:00
Jeremy
144ab89871
Add quick note
2023-07-24 21:56:37 -04:00
Jeremy Rifkin
72228ab5e8
Changes to handle elf image bases / text link-at addresses ( #21 )
...
Figure out the text offset for elf files. When testing on a system that
did not use ASLR by default a user found addr2line being invoked with
the wrong addresses.
2023-07-24 21:51:52 -04:00
Jeremy
d589f2a609
Fix for addr2line edge case
2023-07-24 18:49:34 -04:00
Jeremy Rifkin
43383228e7
Bake an absolute path for addr2line into the library to prevent against path injection ( #19 )
2023-07-23 23:01:20 -04:00
Jeremy
e1c7657a3e
Refactor PE parsing
2023-07-23 20:03:32 -04:00
Jeremy
0e701903ed
Refactor PE header parsing out of addr2line code
2023-07-23 19:58:58 -04:00
Jeremy Rifkin
d12cd313d3
Cache expensive computations ( #18 )
2023-07-23 19:05:11 -04:00
Jeremy
ec3bb29200
Remove old printbug statement
2023-07-23 17:49:32 -04:00
Jeremy
b246613045
Thread safety
2023-07-23 17:29:43 -04:00
Jeremy
cfd0a4e762
Update cpu check
2023-07-23 14:21:32 -04:00
Jeremy
55b5d8a488
File name refactor
2023-07-23 11:18:43 -04:00
Jeremy
bfb94d7e52
Fix trace formatting error
2023-07-23 10:40:04 -04:00
Jeremy Rifkin
75df02f7a3
Fix bug in the test ci script ( #15 )
2023-07-23 10:24:28 -04:00
Jeremy Rifkin
baf785cc49
Macos addr2line / atos support ( #14 )
2023-07-23 09:27:01 -04:00
Jeremy
00d6f1c9d1
Update how stacktraces are printed, add color, add a demo program, add a screenshot to the readme, and two small fixes to backends
2023-07-22 21:50:23 -04:00
Jeremy
927f5ea21e
Update README and minor tweaks
2023-07-22 09:15:36 -04:00
Jeremy
237a23def4
Small tweaks and fixes
2023-07-21 22:36:48 -04:00
Jeremy Rifkin
d7a5eb54fd
Add baseline mingw support ( #13 )
2023-07-21 22:33:56 -04:00
Jeremy Rifkin
73925368cc
Libgcc unwind backend ( #11 )
2023-07-20 01:14:38 -04:00
Jeremy Rifkin
b2df292d80
CI improvements ( #10 )
...
The key change here is to use a python script to test all
configurations, rather than a github actions matrix which spawns
hundreds of 2 second builds, which is horribly inefficient. Builds were
taking 6 to 16 minutes, now they take 2.5 to 5.5.
2023-07-19 22:30:37 -04:00
Jeremy Rifkin
04f8b88efd
Some CI and cmake changes ( #9 )
2023-07-18 22:21:56 -04:00
Jeremy Rifkin
8e4ee0783f
Various macos work ( #7 )
2023-07-14 08:35:17 -04:00
Jeremy Rifkin
d955c61cd6
Try to add basic performance testing ( #8 )
2023-07-13 21:54:17 -04:00
sean
6b55222a4b
Fix: Support macOS ( #6 )
...
Simpler than I expected tbh. macOS uses the same backtrace and dladdr
functions, and with Clang for Xcode we can also just use cxxabi for
demangling.
Co-authored-by: Jeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com>
2023-07-11 18:01:55 -04:00
Jeremy
a540803cd9
Update stacktrace api and a couple minor tweaks
2023-07-09 22:57:15 -04:00
Jeremy
57f5cc529c
Use _exit() over exit()
2023-07-09 21:50:39 -04:00
Jeremy Rifkin
6d9d2a9747
Add addr2line back-end ( #5 )
2023-07-09 21:10:53 -04:00
Jeremy Rifkin
b5af425d09
Add libdl back-end and improve testing system ( #4 )
2023-07-04 16:11:40 -04:00
Jeremy
323aeebe3e
Cleanup and work on fixing test cases
2023-07-04 08:38:58 -04:00
Jeremy
1a1c0d9875
Fallback for to backtrace_syminfo for CPPTRACE_FULL_TRACE_WITH_LIBBACKTRACE too
2023-07-02 23:26:55 -04:00
Jeremy
4dac00a87f
Try falling back to backtrace_syminfo
2023-07-02 21:55:39 -04:00
Jeremy Rifkin
8b101d04e9
Add testing workflow ( #3 )
2023-07-02 21:23:35 -04:00
Jeremy
f56e8c5869
Added C++23 stacktrace backend
2023-07-02 15:20:14 -04:00
Jeremy
69581c9d58
Rename stuff
2023-07-02 13:37:30 -04:00
Jeremy
6c950e0817
Skip library frames when unwinding
2023-07-02 11:52:26 -04:00
Jeremy
bdc8410f82
Add dbghelp config to workflow
2023-07-02 10:37:30 -04:00
Jeremy Rifkin
4475bc1680
Dbghelp back-end ( #2 )
2023-07-02 08:42:53 -04:00
Jeremy Rifkin
99a54e3597
Build work ( #1 )
2023-07-01 22:14:05 -04:00
Jeremy
b3474b50c3
Initial commit
2023-07-01 17:06:41 -04:00