Commit Graph

81 Commits

Author SHA1 Message Date
Jeremy Rifkin
457bc4b8a1
Check external symbols start with _Z before demangling 2025-02-13 23:39:05 -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
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
Pavol Gono
9269a72c54
Fixed compiler warnings and errors under MSYS2+MINGW64 platform. (#186)
Fixed compiler warnings and errors under MSYS2+MINGW64 platform.
2024-10-27 10:30:36 -05:00
Vittorio Romeo
0ddbbf43cb
Improve compilation times on Windows (#172)
Thank you for the very useful library!

Few improvements:
- Better header hygiene
- Isolate `windows.h` to `.cpp` whenever possible
- Use `WIN32_LEAN_AND_MEAN`
- Remove unused headers

Tested on Windows with 
```
cmake .. -DCMAKE_BUILD_TYPE=Debug -GNinja -DCMAKE_EXPORT_COMPILE_COMMANDS=1 
  -DCMAKE_CXX_COMPILER=clang++ -DCMAKE_CXX_FLAGS="-ftime-trace -Wall -Wextra -Wpedantic 
  -Wno-ignored-attributes" -DCMAKE_COLOR_DIAGNOSTICS=1 -DCPPTRACE_BUILD_TESTING=1 
  -DCPPTRACE_BUILD_BENCHMARKING=0
```

There's a lot more that can be improved if you are interested.

---------

Co-authored-by: Jeremy Rifkin <51220084+jeremy-rifkin@users.noreply.github.com>
2024-10-02 10:55:13 -05:00
Pavol Gono
26093d5791
MSYS2+MINGW64 platform with libbacktrace (#166)
I've updated cmake conditions, to allow libbacktrace usage under
mingw64. And fixed one compilation issue.
Tested with package
https://packages.msys2.org/package/mingw-w64-x86_64-libbacktrace
with this setup:
```
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local -DCPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE=On
```
2024-09-03 19:58:39 -05:00
Jeremy Rifkin
973309cb22
Some more platform refactoring/cleanup, also add a note to readme 2024-08-18 12:07:34 -05:00
Jeremy Rifkin
164cc75681
A little refactoring and reorganization. Remove relative includes. 2024-08-18 11:58:49 -05:00
Jeremy
0e462c7b03
Some restructuring of the directory layout 2023-11-18 23:28:48 -06:00
Jeremy
61d536bc02
Put noinline macro in header 2023-11-15 15:22:59 -05:00
Jeremy
aed456bc63
Handle null lines / columns better 2023-11-15 11:52:24 -05:00
Jeremy
259d596f76
Re-enable warnings 2023-11-08 23:59:48 -05:00
Jeremy
4c1c42c61d
Add frame_ptr alias 2023-11-08 21:32:34 -05:00
Jeremy
1ced7c8dc3
Minor tweaks 2023-11-08 19:41:13 -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
781c30f63f
Fix build 2023-11-06 15:16:33 -05:00
Jeremy
ae5d2392fe
More std:: 2023-10-08 22:48:12 -04:00
Jeremy
f6f64954de
Sonar suggestion 2023-10-07 17:43:39 -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
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
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
53ceb99b46
Sonar fixes: More nullptr literal use, take std::fuction by const&, and [[noreturn]] 2023-10-05 12:08:47 -04:00
Jeremy
3b5064f1ff
Fix forwarding issue 2023-10-05 10:58:03 -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
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 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
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
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
799e7a7705
Remove clang-tidy 2023-09-19 15:26:51 -04:00
Jeremy
bdf3e89863
Quick fix 2023-09-19 00:31:10 -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
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
Jeremy
906687e2db
Lint fix 2023-09-12 18:23:56 -04:00