Commit Graph

830 Commits

Author SHA1 Message Date
Jeremy Rifkin
c5c785db89
Check that names passed to cpptrace::detail::demangle look like mangled names before passing to abi::__cxa_demangle 2025-01-27 23:48:13 -06:00
Jeremy Rifkin
a28cc3a3a0
Split up unittest jobs further 2025-01-27 23:36:38 -06:00
Jeremy Rifkin
08306c12a5
Implement symbol table lookup for mach-o and fix mingw build 2025-01-27 23:12:30 -06:00
Jeremy Rifkin
68c9d33e94
Use tried_to_load_header 2025-01-26 23:22:03 -06:00
Jeremy Rifkin
8edb419342
Implement elf symbol table parsing and fall back to the elf symbol table during symbol resolution 2025-01-26 23:07:33 -06:00
Jeremy Rifkin
dc118dcb6d
Move monostate 2025-01-26 23:03:42 -06:00
Jeremy Rifkin
7a1eb4d5bf
Add a Result<T> converting constructor 2025-01-26 20:29:13 -06:00
Jeremy Rifkin
6a9d2c5bbd
Fixes for C++11 / older gcc 2025-01-26 19:31:20 -06:00
Jeremy Rifkin
c9826616b5
Sendit support optional<T&> and Result<T&, E> 2025-01-26 19:18:47 -06:00
Jeremy Rifkin
293f4d1593
Export should_absorb_trace_exceptions to fix tests 2025-01-26 18:15:21 -06:00
Jeremy Rifkin
01ea4e9ea7
Update BUILD.bazel for test 2025-01-26 17:41:23 -06:00
Jeremy Rifkin
06732add17
Try to fix tests on CI 2025-01-26 17:34:02 -06:00
Jeremy Rifkin
78086d0267
Some more unit tests for test cases 2025-01-26 17:29:38 -06:00
Jeremy Rifkin
906784284f
Add unit tests for optional and result helper types 2025-01-26 16:02:34 -06:00
Jeremy Rifkin
b705afba69
Templated lambdas aren't a thing in C++11 :( 2025-01-26 14:52:31 -06:00
Jeremy Rifkin
76a21d266a
Refactor out optional and result 2025-01-26 13:30:54 -06:00
firesgc
1bcfcff021
Incompatible with JNI on Windows: use unique handle for SymInitialize #204 (#206)
WinDbg: Duplicate the process handle before using it in SymInitialize,
because other libraries may have already called SymInitialize for the
process
(https://learn.microsoft.com/en-us/windows/win32/debug/initializing-the-symbol-handler)


Fixes https://github.com/jeremy-rifkin/cpptrace/issues/204

---------

Co-authored-by: Jeremy <51220084+jeremy-rifkin@users.noreply.github.com>
2025-01-25 22:25:54 -06:00
Jeremy Rifkin
485d9a6f21
A little elf refactoring, separate out header loading 2025-01-24 20:16:46 -06:00
Jeremy Rifkin
d063784abc
Refactor elf_get_module_image_base, setup an elf class in preparation for more elf parsing 2025-01-23 00:12:31 -06:00
Jeremy Rifkin
6689d14c20
Bump to v0.7.5 2025-01-04 23:45:49 -06:00
Jeremy Rifkin
f42ed3500d
Use underscores in component names instead of hyphens due to cpack, resolves #203 2025-01-04 23:16:37 -06:00
Jeremy Rifkin
f35ef65ed6
Merge branch 'dev' 2025-01-04 22:57:40 -06:00
Jeremy Rifkin
0c40839009
Specify __cdecl for the terminate handler on MSVC, fixes #197 2024-12-30 23:07:15 -06:00
Jeremy Rifkin
d5a2043fd3
Set C++ standard for old compiler versions in check_support, fixes #200 2024-12-30 22:41:54 -06:00
Dominic Koepke
b127cfb176
Add missing typeinfo include (#202)
Hello,
as you know, I'm working on an integration of ``cpptrace`` into my own
mocking framework. I've an exhaustive build-workflow with various
compiler-configurations. One of these configs fails compiling due to
this error:
```src/platform/exception_type.hpp:19:39: error: member access into incomplete type 'const std::type_info'```

This happens to be the case, when ``clang-16`` with c++23 and `-stdlib=libc++` is used.
see: https://github.com/DNKpp/mimicpp/actions/runs/12549146490/job/34989686008 and
https://github.com/DNKpp/mimicpp/actions/runs/12549146490/job/34989688648

This fixes the issue.
2024-12-30 19:12:39 -06:00
Sergei Zimmerman
b23bc42df4
test(stacktrace): make CPPTRACE_FORCE_INLINE static (#196)
This fixes compilation error:

```
> error: inlining failed in call to 'always_inline' 'int stacktrace_inline_resolution_2(std::vector<int>&)': function body can be overwritten at link time
```
2024-12-23 12:21:30 -07:00
Jeremy Rifkin
5b3f2fb0b1
Bump to v0.7.4 2024-12-21 16:13:10 -06:00
Jeremy Rifkin
43b0ed1b21
Add version macros header 2024-12-21 15:41:13 -06:00
Jeremy Rifkin
27bbe75bd3
Re-enable some dwarf 5 test cases now that upstream issues are resolved (#194)
Re-enables test cases that were disabled due to
https://github.com/davea42/libdwarf-code/issues/259 and
https://github.com/davea42/libdwarf-code/issues/267
2024-12-05 19:11:42 -06:00
Jeremy Rifkin
fe97f8f0f0
Split CI matrix run over several runners 2024-12-04 23:44:37 -06:00
Jeremy Rifkin
cc497fb62b
Revert "Re-enable some dwarf 5 unit tests now that things are fixed upstream"
This reverts commit acddc383a4.
2024-12-04 23:18:58 -06:00
Jeremy Rifkin
acddc383a4
Re-enable some dwarf 5 unit tests now that things are fixed upstream 2024-12-04 22:56:08 -06:00
Jeremy Rifkin
61d06d56d6
Oops 2024-12-03 23:56:10 -06:00
Jeremy Rifkin
4227fc4abe
Better microfmt implementation 2024-12-03 23:53:28 -06:00
Jeremy Rifkin
ddec65195d
Bump to libdwarf 0.11.1 2024-12-03 23:11:25 -06:00
Jeremy Rifkin
379a0fa594
Add a test main that disables cpptrace exception absorption 2024-11-20 23:29:29 -06:00
Jeremy Rifkin
4354eb21ea
Bump to v0.7.3 2024-11-15 17:42:37 -06:00
Jeremy Rifkin
6945c2167e
Change a return back to an _exit(1). It's not different functionally but I decided it's more clear. 2024-11-15 17:21:22 -06:00
Jeremy Rifkin
d43318aa92
Add cmake export set, fixes #189 2024-11-15 17:14:08 -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
8866d70a32
Fix bug in signal_demo and add error message on fork failure to signal tracing guide 2024-11-14 22:08:09 -06:00
Jeremy Rifkin
5a9a4f314d
Updating wording and docs arround the safe trace API 2024-11-14 22:07:32 -06:00
Jeremy Rifkin
88df27aa32
Disable a unittest config until a libdwarf bug is fixed 2024-11-14 21:38:49 -06:00
Jeremy Rifkin
bbae57bd22
Fix typo 2024-11-14 21:23:42 -06:00
Jeremy Rifkin
5c9f5150fb
Followup fixes 2024-11-11 22:41:58 -06:00
Jeremy Rifkin
addaf02387
Fix a test issue on MSVC due to TCO 2024-11-11 21:57:04 -06:00
Jeremy Rifkin
855210e624
Resolve msvc warning/error 2024-11-11 21:46:48 -06:00
Jeremy Rifkin
e41f89ee82
Bump libdwarf used in testing due to dwarf 5 bug 2024-11-11 21:37:36 -06:00
Jeremy Rifkin
4cb425fb35
LTO hackery, make unittests pass under LTO, closes #179 2024-11-11 00:05:01 -06:00
Jeremy Rifkin
90da0563f9
Recurse into DW_TAG_lexical_block DIEs while searching for inlining information 2024-11-10 16:09:55 -06:00