Skip to content

Commit 321a030

Browse files
authored
Merge pull request #1 from jeremy-rifkin/main
Bump to v0.8.3 from master
2 parents c89569b + ce639eb commit 321a030

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+1428
-225
lines changed

.gitignore

+2
Original file line numberDiff line numberDiff line change
@@ -9,3 +9,5 @@ scratch
99
tmp/
1010
bazel-*/
1111
cmake-build-*/
12+
13+
test/jank/data

CHANGELOG.md

+20
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# Changelog
22

33
- [Changelog](#changelog)
4+
- [v0.8.3](#v083)
45
- [v0.8.2](#v082)
56
- [v0.8.1](#v081)
67
- [v0.8.0](#v080)
@@ -28,6 +29,25 @@
2829
- [v0.1.1](#v011)
2930
- [v0.1](#v01)
3031

32+
# v0.8.3
33+
34+
Added:
35+
- Added basic JIT support https://github.com/jeremy-rifkin/cpptrace/issues/226
36+
- Added `cpptrace::formatter::transform` https://github.com/jeremy-rifkin/cpptrace/issues/227
37+
- Added support for gcc 4.8.5 https://github.com/jeremy-rifkin/cpptrace/issues/220
38+
39+
Fixed:
40+
- Fixed bug related to calling `dwarf_dealloc` on strings from `dwarf_formstring` and `dwarf_diename` https://github.com/davea42/libdwarf-code/issues/279
41+
- Fixed incorrect cmake version variable https://github.com/jeremy-rifkin/cpptrace/issues/231
42+
- Fixed `address_mode::none` not working https://github.com/jeremy-rifkin/cpptrace/issues/221
43+
- Fixed use of `-Wall` for clang-cl
44+
45+
Other:
46+
- Added ARM CI
47+
- Miscellaneous work on supporting old compilers
48+
- Updated cpptrace cmake target configuration to not add public compile definitions
49+
- Internal refactoring, cleanup, and code improvements
50+
3151
# v0.8.2
3252

3353
Fixed:

CMakeLists.txt

+51-27
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ set(package_name "cpptrace")
99

1010
project(
1111
cpptrace
12-
VERSION 0.8.2
12+
VERSION 0.8.3
1313
DESCRIPTION "Simple, portable, and self-contained stacktrace library for C++11 and newer "
1414
HOMEPAGE_URL "https://github.com/jeremy-rifkin/cpptrace"
1515
LANGUAGES C CXX
@@ -34,12 +34,20 @@ endif()
3434
if(PROJECT_IS_TOP_LEVEL)
3535
if(CMAKE_GENERATOR STREQUAL "Ninja")
3636
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU")
37-
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")
37+
include(CheckCXXCompilerFlag)
38+
check_cxx_compiler_flag(-fdiagnostics-color=always HAS_CXX_FDIAGNOSTICS_COLOR)
39+
if(HAS_CXX_FDIAGNOSTICS_COLOR)
40+
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fdiagnostics-color=always")
41+
endif()
3842
elseif("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
3943
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fcolor-diagnostics")
4044
endif()
4145
if("${CMAKE_C_COMPILER_ID}" STREQUAL "GNU")
42-
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdiagnostics-color=always")
46+
include(CheckCCompilerFlag)
47+
check_c_compiler_flag(-fdiagnostics-color=always HAS_C_FDIAGNOSTICS_COLOR)
48+
if(HAS_C_FDIAGNOSTICS_COLOR)
49+
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fdiagnostics-color=always")
50+
endif()
4351
elseif("${CMAKE_C_COMPILER_ID}" STREQUAL "Clang" OR "${CMAKE_CXX_COMPILER_ID}" STREQUAL "AppleClang")
4452
SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fcolor-diagnostics")
4553
endif()
@@ -119,6 +127,7 @@ target_sources(
119127
src/demangle/demangle_with_cxxabi.cpp
120128
src/demangle/demangle_with_nothing.cpp
121129
src/demangle/demangle_with_winapi.cpp
130+
src/jit/jit_objects.cpp
122131
src/snippets/snippet.cpp
123132
src/symbols/dwarf/debug_map_resolver.cpp
124133
src/symbols/dwarf/dwarf_options.cpp
@@ -136,7 +145,11 @@ target_sources(
136145
src/unwind/unwind_with_nothing.cpp
137146
src/unwind/unwind_with_unwind.cpp
138147
src/unwind/unwind_with_winapi.cpp
148+
src/utils/io/file.cpp
149+
src/utils/io/memory_file_view.cpp
150+
src/utils/error.cpp
139151
src/utils/microfmt.cpp
152+
src/utils/string_view.cpp
140153
src/utils/utils.cpp
141154
src/platform/dbghelp_utils.cpp
142155
)
@@ -154,9 +167,15 @@ target_include_directories(
154167
src
155168
)
156169

170+
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang" AND "${CMAKE_CXX_COMPILER_FRONTEND_VARIANT}" STREQUAL "MSVC")
171+
set(IS_CLANG_CL 1)
172+
else()
173+
set(IS_CLANG_CL 0)
174+
endif()
175+
157176
set(
158177
warning_options
159-
$<$<NOT:$<CXX_COMPILER_ID:MSVC>>:-Wall -Wextra -Werror=return-type -Wundef>
178+
$<$<NOT:$<OR:$<CXX_COMPILER_ID:MSVC>,$<STREQUAL:${IS_CLANG_CL},1>>>:-Wall -Wextra -Werror=return-type -Wundef>
160179
$<$<CXX_COMPILER_ID:GNU>:-Wuseless-cast -Wmaybe-uninitialized>
161180
$<$<CXX_COMPILER_ID:MSVC>:/W4 /permissive->
162181
)
@@ -176,6 +195,11 @@ target_compile_options(
176195
${warning_options}
177196
)
178197

198+
if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "GNU" AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 6.0)
199+
# https://godbolt.org/z/qYh89E6rq
200+
target_compile_options(${target_name} PRIVATE -Wno-missing-field-initializers)
201+
endif()
202+
179203
set(CPPTRACE_VERSION_MAJOR ${PROJECT_VERSION_MAJOR})
180204
set(CPPTRACE_VERSION_MINOR ${PROJECT_VERSION_MINOR})
181205
set(CPPTRACE_VERSION_PATCH ${PROJECT_VERSION_PATCH})
@@ -243,19 +267,19 @@ endif()
243267
# =================================================== Back-end setup ===================================================
244268

245269
if(HAS_CXX_EXCEPTION_TYPE)
246-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_HAS_CXX_EXCEPTION_TYPE)
270+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_HAS_CXX_EXCEPTION_TYPE)
247271
endif()
248272

249273
if(HAS_DL_FIND_OBJECT)
250-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_HAS_DL_FIND_OBJECT)
274+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_HAS_DL_FIND_OBJECT)
251275
endif()
252276

253277
if(HAS_DLADDR1)
254-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_HAS_DLADDR1)
278+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_HAS_DLADDR1)
255279
endif()
256280

257281
if(HAS_MACH_VM)
258-
target_compile_definitions(${target_name} PUBLIC HAS_MACH_VM)
282+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_HAS_MACH_VM)
259283
endif()
260284

261285
# Symbols
@@ -267,20 +291,20 @@ if(CPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE)
267291
message(WARNING "Cpptrace: Using libbacktrace for symbols but libbacktrace doesn't appear installed or configured properly. You may need to specify CPPTRACE_BACKTRACE_PATH.")
268292
endif()
269293
endif()
270-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE)
294+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_GET_SYMBOLS_WITH_LIBBACKTRACE)
271295
target_link_libraries(${target_name} PRIVATE backtrace ${CMAKE_DL_LIBS})
272296
endif()
273297

274298
if(CPPTRACE_GET_SYMBOLS_WITH_LIBDL)
275-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_GET_SYMBOLS_WITH_LIBDL)
299+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_GET_SYMBOLS_WITH_LIBDL)
276300
target_link_libraries(${target_name} PRIVATE ${CMAKE_DL_LIBS})
277301
endif()
278302

279303
if(CPPTRACE_GET_SYMBOLS_WITH_ADDR2LINE)
280304
# set(CPPTRACE_ADDR2LINE_PATH "" CACHE STRING "Absolute path to the addr2line executable you want to use.")
281305
# option(CPPTRACE_ADDR2LINE_SEARCH_SYSTEM_PATH "" OFF)
282306
if(CPPTRACE_ADDR2LINE_SEARCH_SYSTEM_PATH)
283-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_ADDR2LINE_SEARCH_SYSTEM_PATH)
307+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_ADDR2LINE_SEARCH_SYSTEM_PATH)
284308
else()
285309
if("${CPPTRACE_ADDR2LINE_PATH}" STREQUAL "")
286310
if(APPLE)
@@ -292,16 +316,16 @@ if(CPPTRACE_GET_SYMBOLS_WITH_ADDR2LINE)
292316
set(CPPTRACE_ADDR2LINE_PATH_FINAL "${CPPTRACE_ADDR2LINE_PATH}")
293317
endif()
294318
message(STATUS "Cpptrace: Using ${CPPTRACE_ADDR2LINE_PATH_FINAL} for addr2line path")
295-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_ADDR2LINE_PATH="${CPPTRACE_ADDR2LINE_PATH_FINAL}")
319+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_ADDR2LINE_PATH="${CPPTRACE_ADDR2LINE_PATH_FINAL}")
296320
endif()
297-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_GET_SYMBOLS_WITH_ADDR2LINE)
321+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_GET_SYMBOLS_WITH_ADDR2LINE)
298322
if(UNIX)
299323
target_link_libraries(${target_name} PRIVATE ${CMAKE_DL_LIBS})
300324
endif()
301325
endif()
302326

303327
if(CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
304-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
328+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
305329
if(CPPTRACE_USE_EXTERNAL_LIBDWARF)
306330
if(NOT CPPTRACE_FIND_LIBDWARF_WITH_PKGCONFIG)
307331
find_package(libdwarf REQUIRED)
@@ -412,20 +436,20 @@ if(CPPTRACE_GET_SYMBOLS_WITH_LIBDWARF)
412436
endif()
413437

414438
if(CPPTRACE_GET_SYMBOLS_WITH_DBGHELP)
415-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_GET_SYMBOLS_WITH_DBGHELP)
439+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_GET_SYMBOLS_WITH_DBGHELP)
416440
target_link_libraries(${target_name} PRIVATE dbghelp)
417441
endif()
418442

419443
if(CPPTRACE_GET_SYMBOLS_WITH_NOTHING)
420-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_GET_SYMBOLS_WITH_NOTHING)
444+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_GET_SYMBOLS_WITH_NOTHING)
421445
endif()
422446

423447
# Unwinding
424448
if(CPPTRACE_UNWIND_WITH_UNWIND)
425449
if(NOT HAS_UNWIND)
426450
message(WARNING "Cpptrace: CPPTRACE_UNWIND_WITH_UNWIND specified but libgcc unwind doesn't seem to be available.")
427451
endif()
428-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_UNWIND_WITH_UNWIND)
452+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_UNWIND_WITH_UNWIND)
429453
endif()
430454

431455
if(CPPTRACE_UNWIND_WITH_LIBUNWIND)
@@ -461,56 +485,56 @@ if(CPPTRACE_UNWIND_WITH_LIBUNWIND)
461485
target_include_directories(${target_name} PRIVATE ${LIBUNWIND_INCLUDE_DIRS})
462486
target_link_libraries(${target_name} PRIVATE ${LIBUNWIND_LDFLAGS})
463487
endif()
464-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_UNWIND_WITH_LIBUNWIND UNW_LOCAL_ONLY)
488+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_UNWIND_WITH_LIBUNWIND UNW_LOCAL_ONLY)
465489
endif()
466490
endif()
467491

468492
if(CPPTRACE_UNWIND_WITH_EXECINFO)
469493
if(NOT HAS_EXECINFO)
470494
message(WARNING "Cpptrace: CPPTRACE_UNWIND_WITH_EXECINFO specified but execinfo.h doesn't seem to be available.")
471495
endif()
472-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_UNWIND_WITH_EXECINFO)
496+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_UNWIND_WITH_EXECINFO)
473497
endif()
474498

475499
if(CPPTRACE_UNWIND_WITH_WINAPI)
476-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_UNWIND_WITH_WINAPI)
500+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_UNWIND_WITH_WINAPI)
477501
endif()
478502

479503
if(CPPTRACE_UNWIND_WITH_DBGHELP)
480504
if(NOT HAS_STACKWALK)
481505
message(WARNING "Cpptrace: CPPTRACE_UNWIND_WITH_DBGHELP specified but dbghelp stackwalk64 doesn't seem to be available.")
482506
endif()
483-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_UNWIND_WITH_DBGHELP)
507+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_UNWIND_WITH_DBGHELP)
484508
target_link_libraries(${target_name} PRIVATE dbghelp)
485509
endif()
486510

487511
if(CPPTRACE_UNWIND_WITH_NOTHING)
488-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_UNWIND_WITH_NOTHING)
512+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_UNWIND_WITH_NOTHING)
489513
endif()
490514

491515
# Demangling
492516
if(CPPTRACE_DEMANGLE_WITH_CXXABI)
493517
if(NOT HAS_CXXABI)
494518
message(WARNING "Cpptrace: CPPTRACE_DEMANGLE_WITH_CXXABI specified but cxxabi.h doesn't seem to be available.")
495519
endif()
496-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_DEMANGLE_WITH_CXXABI)
520+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_DEMANGLE_WITH_CXXABI)
497521
endif()
498522

499523
if(CPPTRACE_DEMANGLE_WITH_WINAPI)
500-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_DEMANGLE_WITH_WINAPI)
524+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_DEMANGLE_WITH_WINAPI)
501525
target_link_libraries(${target_name} PRIVATE dbghelp)
502526
endif()
503527

504528
if(CPPTRACE_DEMANGLE_WITH_NOTHING)
505-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_DEMANGLE_WITH_NOTHING)
529+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_DEMANGLE_WITH_NOTHING)
506530
endif()
507531

508532
if(NOT "${CPPTRACE_BACKTRACE_PATH}" STREQUAL "")
509-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_BACKTRACE_PATH=${CPPTRACE_BACKTRACE_PATH})
533+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_BACKTRACE_PATH=${CPPTRACE_BACKTRACE_PATH})
510534
endif()
511535

512536
if(NOT "${CPPTRACE_HARD_MAX_FRAMES}" STREQUAL "")
513-
target_compile_definitions(${target_name} PUBLIC CPPTRACE_HARD_MAX_FRAMES=${CPPTRACE_HARD_MAX_FRAMES})
537+
target_compile_definitions(${target_name} PRIVATE CPPTRACE_HARD_MAX_FRAMES=${CPPTRACE_HARD_MAX_FRAMES})
514538
endif()
515539

516540
# ====================================================== Install =======================================================

0 commit comments

Comments
 (0)