Jeremy
4db73b1856
Fix assertion failure format string
2024-03-30 23:19:13 -05:00
Jeremy
50483783cb
Fix bug with non-recursive inline walking
2024-03-30 23:18:55 -05:00
Jeremy
ab63c34827
Replace most stream use with new formatting system
2024-03-30 20:25:06 -05:00
Jeremy Rifkin
acaa4f42e6
Add a Result type and replace some exceptions with it ( #109 )
2024-03-30 13:35:52 -05:00
Jeremy
47e7ee79eb
Formatting update
2024-03-30 11:11:07 -05:00
Jeremy
fa6155ff47
Remove awful stringf system
2024-03-29 23:12:26 -05:00
Jeremy
411fdff8fa
Merge branch 'dev'
2024-03-20 22:08:33 -05:00
Jeremy
d1199dc325
Fix potential null dereference issue, thanks @eyalgolan1337. Resolves #106 .
2024-03-20 22:08:21 -05:00
Billy O'Neal
37e6cef4f9
Defend against min and max macros from windows.h ( #105 )
...
Alternative to
https://github.com/microsoft/vcpkg/pull/37512/files#diff-9f533b43a5faabaa6b5a0e046f0ae425cd85736808604dd61dc9a955db3d060aR9
I left the examples in mach-o.hpp as they are guarded by #if IS_APPLE
2024-03-18 23:03:26 -05:00
Jeremy
a841a1b74a
Fix msvc warning treated as error
2024-03-16 19:23:03 -05:00
Jeremy
a528aa8e0b
Fix object address resolution with _dl_find_object, #104
2024-03-16 16:17:27 -05:00
Jeremy
3e0689a5e6
Resolve object address for dbghelp frames by default, handles #100
2024-03-09 22:15:41 -06:00
Jeremy
8d6326da07
Update locking in dbghelp_syminit_manager
2024-03-08 17:39:08 -06:00
Jeremy
c896d70f79
Small reorganization
2024-03-05 17:47:55 -06:00
Jeremy
da739d30c5
Add can_signal_safe_unwind and update some documentation surrounding signal-safe stack tracing
2024-03-03 12:15:27 -06:00
Jeremy
ec264aa0eb
Cleanup and improve snippet code a bit
2024-03-03 11:49:15 -06:00
Jeremy
862b546532
Update margin handling
2024-03-03 11:34:09 -06:00
Jeremy
9da2b3f556
Refactor object.hpp, separate out module base logic which greatly cleans things up
2024-03-03 11:31:06 -06:00
Jeremy
f11e119d32
Refactor stacktrace conversion code
2024-03-03 10:54:23 -06:00
Jeremy
389f788b57
Add get_object_info method to stacktrace frames, adding onto the previous work for #97
2024-03-03 10:54:03 -06:00
Jeremy Rifkin
d99f1745d2
Basic source code snippet system ( #98 )
2024-02-28 23:29:24 -06:00
Jeremy
736643358b
Implement a non-recursive get_inlines_info
2024-02-28 22:30:47 -06:00
Jeremy
0fda4a88ed
Refactor stack trace frame printing
2024-02-28 20:53:28 -06:00
Jeremy
a31d35c04e
Fixes
2024-02-27 19:12:55 -06:00
Jeremy
a24c140baf
Add object address resolution for libdl backend
2024-02-27 19:00:08 -06:00
Jeremy
d17fe33abf
Try to fix build errors
2024-02-27 00:39:58 -06:00
Jeremy
3c7a677689
Add an object address to stacktrace_frame entries, addresses #97 (no pun intended)
2024-02-27 00:34:45 -06:00
Jeremy
d5b2646283
Merge branch 'main' into dev
2024-02-27 00:23:10 -06:00
Bruce Mitchener
a144002bf0
Tweaks from clang-tidy ( #92 )
...
This is (perhaps) mainly for discussion as I saw you removed
`clang-tidy` checks last year. These fix a variety of minor things.
With one of the options that I was using, these still remain:
```
/Users/bruce/Development/custodian/cpptrace/src/symbols/../utils/utils.hpp:235:22: warning: noexcept specifier on the move constructor evaluates to 'false' [performance-noexcept-move-constructor]
235 | noexcept(std::is_nothrow_move_constructible<T>::value)
| ^
/Users/bruce/Development/custodian/cpptrace/src/symbols/../utils/utils.hpp:250:64: warning: noexcept specifier on the move assignment operator evaluates to 'false' [performance-noexcept-move-constructor]
250 | noexcept(std::is_nothrow_move_assignable<T>::value && std::is_nothrow_move_constructible<T>::value)
| ^
```
2024-02-18 11:21:48 -06:00
Bruce Mitchener
1488460172
Use defined(CPPTRACE_HAS_CXX_EXCEPTION_TYPE). ( #94 )
...
This is set by the build system when it is available and not set when
not available (and not set to 1/0 respectively).
The current code can generate a warning when this preprocessor
definition is not defined.
2024-02-18 11:16:04 -06:00
Bruce Mitchener
aa446b0540
Fix typos. ( #90 )
2024-02-18 00:10:21 -06:00
Jeremy
d52b80301a
Make sure to at least show object frame info even if resolution fails for libdwarf, resolves #87
...
Co-authored-by: eyalgolan1337
2024-02-15 19:40:11 -06:00
Jeremy
22b326ba7e
Small optimization, doesn't really matter but doesn't hurt
2024-02-11 22:22:29 -06:00
Jeremy
e6627b760d
Implement better logic for handling scrfile indices, related to #86
2024-02-11 21:02:48 -06:00
Jeremy
cb92c9fdfa
Small optimization to reduce unnecessary frame copying
2024-02-11 15:59:56 -06:00
Jeremy
36a16df075
Handle an edge case with dwarf file indices, identified in #86
2024-02-11 15:25:18 -06:00
Jeremy
9a7c45bda7
remove return that wasn't needed
2024-02-11 02:05:00 -06:00
Jeremy
cdaab64be2
Revert "Printbug"
...
This reverts commit 2e9c586ba7 .
2024-02-11 01:58:29 -06:00
Jeremy
612d5e6d65
Fix architecture handling in load_mach
2024-02-11 01:53:57 -06:00
Jeremy
2e9c586ba7
Printbug
2024-02-11 01:49:46 -06:00
Jeremy
37630f479d
Try to make fat mach architecture handling more robust
2024-02-08 00:38:56 -06:00
Jeremy
59272bccd6
printbug...
2024-02-07 22:37:55 -06:00
Jeremy
68f919f292
Add ctrace documentation
2024-02-07 00:11:48 -06:00
Jeremy
78dd053f21
Light ctrace refactoring
2024-02-06 23:10:02 -06:00
Jeremy
8f9e8c5c1b
Some formatting consistency tweaks
2024-02-04 13:58:57 -06:00
Jeremy
a3e3916daa
Fix issue with trying to call detail::enable_virtual_terminal_processing_if_needed unconditionally on print
2024-02-04 13:56:46 -06:00
Jeremy
ab2d440a00
Update cpptrace exceptions to defer trace generation to the callsite with a default argument
2024-02-04 13:40:12 -06:00
Jeremy
2f7f5107a5
Add ctrace interface for enable_inlined_call_resolution
2024-02-04 11:10:37 -06:00
Jeremy
d7aac52f8b
Add configuration to control resolution of inlined calls
2024-02-04 11:03:03 -06:00
Jeremy
b8c66cd855
Remove old comment
2024-01-29 22:29:35 -06:00