Commit Graph

42 Commits

Author SHA1 Message Date
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
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
Jeremy Rifkin
4c59e73a01
Split up cpptrace.hpp 2024-10-05 18:01:12 -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
Jeremy Rifkin
142e0b9ea4
Per 0blu's suggestion, use the SymGetLineFromAddr macro instead of SymGetLineFromAddr64 2024-09-13 00:06:05 -05:00
Jeremy Rifkin
0e2c3a130d
Fix windows build 2024-08-18 12:11:20 -05:00
Jeremy Rifkin
164cc75681
A little refactoring and reorganization. Remove relative includes. 2024-08-18 11:58:49 -05:00
Jeremy
da0aa4d5c0
Split a bunch of internal headers into .cpp/.hpp 2024-05-05 17:44:27 -05:00
Jeremy
ffb1b8ed68
A little more error handling cleanup 2024-03-31 16:02:39 -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
3e0689a5e6
Resolve object address for dbghelp frames by default, handles #100 2024-03-09 22:15:41 -06:00
Jeremy
a31d35c04e
Fixes 2024-02-27 19:12:55 -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
6da8ee0773
Fix a couple includes 2023-11-18 23:38:03 -06:00
Jeremy
5657a07ed4
Remove some no longer needed includes 2023-11-18 23:35:43 -06:00
Jeremy
79bc580519
Handle multiple symbol back-ends better 2023-11-15 15:09:08 -05:00
Jeremy
feef9a3265
Fix 2023-11-15 11:55:59 -05:00
Jeremy
aed456bc63
Handle null lines / columns better 2023-11-15 11:52:24 -05:00
Jeremy
c6ea891629
Address -Wmissing-field-initializers warnings 2023-11-14 22:58:10 -05:00
Jeremy
4c1c42c61d
Add frame_ptr alias 2023-11-08 21:32:34 -05:00
Jeremy
ae5d2392fe
More std:: 2023-10-08 22:48:12 -04:00
Jeremy Rifkin
ddad92b1f8
Sonar fixes (#52) 2023-10-05 11:17:39 -04:00
Jeremy
d84a3167d9
Add cache mode config 2023-09-29 12:50:47 -04:00
Jeremy Rifkin
6de61e7755
Add StackWalk64 backend (#48) 2023-09-24 17:30:56 -04:00
Jeremy Rifkin
183cdf5a1c
Error handling improvements (#46) 2023-09-23 17:46:26 -04:00
Jeremy
5c3df2571e
Rename stacktrace_frame.col to column, set a proper sentinel value, and update stacktrace.to_string to not have a tailing newline 2023-09-19 15:17:39 -04:00
Jeremy
137dc78710
Improve dbghelp symbolization thread safety 2023-09-19 11:05:04 -04:00
Jeremy Rifkin
0b32df64e4
Expand cpptrace API (#37) 2023-09-18 20:33:46 -04:00
Jeremy Rifkin
94f902e644
Try to get msvc speedtest working (#36) 2023-09-18 01:31:01 -04:00
Jeremy
fdbc69e18e
Refactor nested namespaces 2023-09-16 21:19:08 -04:00
Jeremy
5dc819186e
Baseline for middle-end system 2023-09-11 11:57:01 -04:00
Jeremy
0e27da8c11
Some symbol backend refactoring, get rid of pimpl nonsense 2023-08-31 01:21:22 -04:00
Jeremy
b246613045
Thread safety 2023-07-23 17:29:43 -04:00
Jeremy
55b5d8a488
File name refactor 2023-07-23 11:18:43 -04:00
Jeremy
237a23def4
Small tweaks and fixes 2023-07-21 22:36:48 -04:00
Jeremy
a540803cd9
Update stacktrace api and a couple minor tweaks 2023-07-09 22:57:15 -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
69581c9d58
Rename stuff 2023-07-02 13:37:30 -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
b3474b50c3
Initial commit 2023-07-01 17:06:41 -04:00