Commit Graph

74 Commits

Author SHA1 Message Date
Jeremy Rifkin
aed47df73e
Slightly improve memory usage by packing some structs used in the die cache 2025-02-17 22:18:15 -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
2b7d47d627
Add elf symtab dumping tool 2025-02-02 21:37:22 -06:00
Jeremy Rifkin
d1ce9c8896
Oops, quick fixes 2025-02-02 14:45:49 -06:00
Jeremy Rifkin
00c7feb2e0
Remove some unused includes 2025-02-01 20:03:50 -06:00
Jeremy Rifkin
e2b1252438
A new formatting setup (#208)
Resolves #164
2025-02-01 17:31:49 -06:00
Jeremy Rifkin
25eaa832d1
Remove a superfluous inline 2025-01-28 00:50:42 -06:00
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
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
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
76a21d266a
Refactor out optional and result 2025-01-26 13:30:54 -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
61d06d56d6
Oops 2024-12-03 23:56:10 -06:00
Jeremy Rifkin
4227fc4abe
Better microfmt implementation 2024-12-03 23:53:28 -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
Reimu NotMoe
557a4a6fab
Add missing #include <algorithm> in microfmt.hpp (#183)
This fixes building latest cpptrace in macOS
(https://github.com/jeremy-rifkin/microfmt/issues/1)
2024-10-20 23:52:29 -05:00
Jeremy Rifkin
757c0f87fe
Quick correction to get_cout 2024-10-06 14:06:52 -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
4e9f0da95f
Nest microfmt in the cpptrace namespace due to conditionally-enabled C++17 behavior causing ODR issues, related to https://github.com/jeremy-rifkin/libassert/issues/103 2024-09-12 21:06:12 -05:00
_BLU
0d89be4fbe
VS2015 fixes (#165)
Fixes the compilation on VS14 / 2015.
2024-09-04 22:32:00 -05:00
Jeremy Rifkin
164cc75681
A little refactoring and reorganization. Remove relative includes. 2024-08-18 11:58:49 -05:00
Jeremy
b8a6e8446a
Quick microfmt fix for an old msvc bug 2024-06-02 12:47:53 -05:00
Jeremy
59ef49f1a3
Update microfmt 2024-06-02 11:31:43 -05:00
Jeremy
9d1c592f0c
Remove CPPTRACE_CONDA_LIBDWARF_WEIRDNESS bodge and better support libdwarf via pkgconfig, resolves #131 2024-05-28 21:32:54 -05:00
Jeremy Rifkin
b2bff57d81
Debug Fission (#132)
Implement support for debug fission, closes #129
2024-05-28 20:39:34 -05:00
Jeremy
5556aedddb
Refactor cu lookup out of pc resolution 2024-05-25 16:20:41 -05:00
Jeremy
810b74ecaa
Refactor symbols_with_libdwarf indo separate files 2024-05-25 14:29:55 -05:00
Jeremy
a9f72c6f67
Refactor logic in the libdwarf resolver's resolve_frames, pull out resolver management 2024-05-25 13:02:25 -05:00
Jeremy
6307700710
Fix ASSERT macro under -Wpedantic 2024-05-23 22:33:33 -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
7c9b24ca72
Fix dwarf_ranges handling of lowpc == pc, it's not correct to jump the gun and not check the high-pc. I think I erroneously added this in c94b03ae6e. Discovered as part of #123. 2024-05-19 17:00:44 -05:00
Jeremy
323ab5814e
Merge branch 'main' into dev 2024-05-12 22:00:45 -05:00
Ben Dunkin
a70cf7935a
Fix missing cxxabi.h include on Windows when using libc++ (#122)
Make operator precedence explicit so the
`CPPTRACE_HAS_CXX_EXCEPTION_TYPE` define is a dominant switch to use
cxxabi.h, rather than one that only applies when `__GLIBCXX__` is
defined.

Fixes https://github.com/jeremy-rifkin/cpptrace/issues/121
2024-05-12 21:56:38 -05:00
Jeremy
d7c19a5544
Updates for conda 2024-05-03 20:07:09 -05:00
Jeremy
c871c2a43c
Grab new microfmt changes and fix #113 2024-04-27 01:29:39 -05:00
Jeremy
599d6abd6c
Workaround bug for old msvc 2024-03-31 23:51:41 -05:00
Jeremy
0dd71cebb7
Mac fixes 2024-03-31 22:01:14 -05:00
Jeremy
06372b772f
Fix another warning 2024-03-31 16:42:51 -05:00
Jeremy
40696e8d02
Handle MSVC warning treated as error 2024-03-31 16:37:29 -05:00
Jeremy
ffb1b8ed68
A little more error handling cleanup 2024-03-31 16:02:39 -05:00
Jeremy
b04fc09682
Update internal error messages 2024-03-31 14:18:21 -05:00
Jeremy
8007413ff6
Print Result(E) if not absorbing trace exceptions 2024-03-31 14:15:19 -05:00
Jeremy
4db73b1856
Fix assertion failure format string 2024-03-30 23:19:13 -05:00