Commit Graph

84 Commits

Author SHA1 Message Date
Jeremy Rifkin
6877782d96
Add cpptrace::can_get_safe_object_frame and add ctrace prefix for can_signal_safe_unwind 2025-02-20 21:36:19 -06:00
Jeremy Rifkin
728cefab55
Add setting to disable the use of dwarf aranges 2025-02-17 22:27:44 -06:00
Jeremy Rifkin
1d79dbcf42
Add a configurable cache size for the line tables cache, related to #193 2025-02-17 19:10:46 -06:00
Jeremy Rifkin
ce97e0004d
Add basic option for shortening paths in the formatter 2025-02-13 23:22:12 -06:00
Jeremy Rifkin
b2180ae797
Rename builder methods 2025-02-02 16:58:22 -06:00
Jeremy Rifkin
eb83ee2a1c
Add an option to show / hide filtered frames vs printing a placeholder 2025-02-02 16:20:47 -06:00
Jeremy Rifkin
00c7feb2e0
Remove some unused includes 2025-02-01 20:03:50 -06:00
Jeremy Rifkin
32f0d5d273
Constexpr fix 2025-02-01 20:00:06 -06:00
Jeremy Rifkin
85be7c32a4
Some improvements to the nullable interface 2025-02-01 19:10:19 -06:00
Jeremy Rifkin
e2b1252438
A new formatting setup (#208)
Resolves #164
2025-02-01 17:31:49 -06:00
Jeremy Rifkin
e10dbf431e
Add a color overload for stacktrace_frame::to_string, fixes #190 2024-11-14 23:54:52 -06:00
Jeremy Rifkin
a1fa0a1b81
Use forward declaration header in object.hpp 2024-10-06 16:50:39 -05:00
Jeremy Rifkin
4c59e73a01
Split up cpptrace.hpp 2024-10-05 18:01:12 -05:00
Jeremy Rifkin
4f94f20d41
Fix computation of object address for safe object frames. I forgot to do this as part of a528aa8e0b, also related to #104 2024-09-07 12:02:52 -05:00
Jeremy Rifkin
3b0eb54797
Implement a system for preventing redundant tracing during search, and other various improvements for the from_current system (#159) 2024-08-20 23:10:17 -05:00
Jeremy Rifkin
26e009c688
Add cpptrace::from_current (#155) 2024-08-18 11:11:47 -05:00
Jeremy
f8fee797cf
Use iosfwd instead of iostream 2024-07-12 17:51:06 -05:00
Jeremy
aae6091395
Add a flag to disable the inclusion of <format> and the provision for std::formatter specializations 2024-07-12 17:22:58 -05:00
Jeremy Rifkin
2fb0a6fd2e
Fix trace generation for cpptrace exception objects on armv7hf (#138)
noexcept on get_raw_trace_and_absorb seems to somehow interfere with
unwinding on armv7hf, possibly due to unwind tables not being generated
for the function. Fixes #134.
2024-06-13 11:17:44 -05:00
Jeremy
d288609b42
Fix for lazy_trace_holder's default constructor 2024-05-23 22:18:16 -05:00
Jeremy Rifkin
b3836e9318
Support -Wpedantic if someone sets the flag globally while using FetchContent (#127)
Closes #107
2024-05-23 21:18:11 -05:00
Jeremy
74ed6afc0a
Add cpptrace::system_error 2024-05-06 23:01:11 -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
da739d30c5
Add can_signal_safe_unwind and update some documentation surrounding signal-safe stack tracing 2024-03-03 12:15:27 -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
3c7a677689
Add an object address to stacktrace_frame entries, addresses #97 (no pun intended) 2024-02-27 00:34:45 -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
Jeremy
58d09dd010
Remove CPPTRACE_NO_EXPORT_ATTR / CPPTRACE_DEPRECATED_ATTR as they aren't used 2024-02-11 02:05:21 -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
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
36d1dbf9e6
Add ctrace export annotations 2024-02-04 11:08:18 -06:00
Jeremy
d7aac52f8b
Add configuration to control resolution of inlined calls 2024-02-04 11:03:03 -06:00
Jeremy
589d87063a
Small header refactor 2024-02-04 10:48:55 -06:00
Jeremy
5fde4081dc
Replace the cmake generated export header 2024-01-29 23:26:18 -06:00
eightfold
218957dfb0
New C api (#80)
Updated C API following the requested scheme. May implement "exceptions"
later...

Closes #38

---------

Co-authored-by: Jeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com>
2024-01-23 00:16:20 -06:00
Jeremy
07dea09dfc
Add CPPTRACE_EXPORT tags to exception classes 2023-12-03 13:14:35 -05:00
Jeremy
b3b9d5fda6
Remove CPPTRACE_EXPORT from nullable 2023-11-23 00:06:09 -06:00
Jeremy
e7aae33cec
A couple fixes 2023-11-21 22:56:11 -06:00
Jeremy
bb4550e582
Update a #include in cpptrace.hpp 2023-11-21 22:39:12 -06:00
Jeremy
27c8878fa9
Fix 2023-11-21 21:57:40 -06:00
Jeremy
ae2a85c3f0
Suppress a msvc warning 2023-11-21 21:47:13 -06:00
Jeremy
3a0db500d0
Fixes 2023-11-21 21:32:42 -06:00
Jeremy
9113cc5ffc
Some refactoring, bring object_frame in line with safe_object_frame. Also renamed address_relative_to_object_base_in_memory. 2023-11-20 23:13:21 -06:00
Jeremy
2a4a8066d3
Rework the object trace interface a bit and clarify their purpose. Also rename minimal_object_trace to safe_object_trace 2023-11-20 23:01:19 -06:00
Jeremy
7c49e64ba6
Updated documentation, added documentation for new stuff, and updated cpptrace.hpp a bit 2023-11-20 22:14:13 -06:00
Jeremy
6c6d915414
Removed raw_trace::from_buffer, not happy with that api 2023-11-19 23:45:51 -06:00
Jeremy
ac7db48cef
Really fix it this time 2023-11-19 23:07:41 -06:00