Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

stacktrace #2502

Merged
merged 138 commits into from
Jun 12, 2022
Merged
Show file tree
Hide file tree
Changes from 73 commits
Commits
Show all changes
138 commits
Select commit Hold shift + click to select a range
3891724
stacktrace initial implementation
AlexGuteniev Jan 23, 2022
9943152
fix line
AlexGuteniev Jan 23, 2022
1e0b47c
feature, missing (c), pmr
AlexGuteniev Jan 23, 2022
96ade42
x86 build
AlexGuteniev Jan 23, 2022
c480c55
header!
AlexGuteniev Jan 23, 2022
b080877
-copypasta comments
AlexGuteniev Jan 23, 2022
ec9e855
Ugly Al
AlexGuteniev Jan 23, 2022
5575f9b
_STD move
AlexGuteniev Jan 23, 2022
ec470a5
right size
AlexGuteniev Jan 23, 2022
1cb8b79
test pass
AlexGuteniev Jan 23, 2022
df9b1ba
-lines
AlexGuteniev Jan 23, 2022
603e8d7
too few [[nodiscard]]
AlexGuteniev Jan 23, 2022
115229f
hash hash
AlexGuteniev Jan 23, 2022
ab3d65b
no, removed
AlexGuteniev Jan 23, 2022
a475f02
it is overspecified to me!
AlexGuteniev Jan 23, 2022
a7e2edd
size
AlexGuteniev Jan 23, 2022
f58f476
conventions
AlexGuteniev Jan 23, 2022
20364f6
Don't pass nullptr to string ctor
AlexGuteniev Jan 23, 2022
a561b53
strengthen
AlexGuteniev Jan 24, 2022
9ddfb94
typo
AlexGuteniev Jan 24, 2022
59ee7fa
save displacement
AlexGuteniev Jan 24, 2022
8090d3d
cache only the last address and no more
AlexGuteniev Jan 24, 2022
7fb6f85
not using format yet
AlexGuteniev Jan 24, 2022
98a0793
move string conversion to .cpp
AlexGuteniev Jan 24, 2022
bca36f3
file
AlexGuteniev Jan 24, 2022
7562e13
Add module/offset
AlexGuteniev Jan 24, 2022
1de504d
Update stl/src/stacktrace.cpp
AlexGuteniev Jan 24, 2022
dfbf80a
save on locks
AlexGuteniev Jan 24, 2022
0024cbe
MAX_SYM_NAME
AlexGuteniev Jan 26, 2022
b18cb81
Phoenix
AlexGuteniev Jan 26, 2022
8326f74
switch to <DbgEng.h>
AlexGuteniev Feb 3, 2022
1e96c7a
clang format
AlexGuteniev Feb 3, 2022
2256088
fix link
AlexGuteniev Feb 3, 2022
67f96d5
Functional nightmare
AlexGuteniev Feb 5, 2022
7cc3d11
clang format
AlexGuteniev Feb 5, 2022
f098d7f
desatellite
AlexGuteniev Feb 5, 2022
dfb0700
extern C
AlexGuteniev Feb 5, 2022
03c4751
desatellite++
AlexGuteniev Feb 5, 2022
b71b67e
unused
AlexGuteniev Feb 5, 2022
ce6d007
atexit sync
AlexGuteniev Feb 5, 2022
82a6c7c
top level `const`
AlexGuteniev Feb 5, 2022
7aee461
#exclude
AlexGuteniev Feb 5, 2022
8dc8468
unextern C for exception safety
AlexGuteniev Feb 6, 2022
1cfb5c7
still extern "C"
AlexGuteniev Feb 6, 2022
5cdb7bd
build
AlexGuteniev Feb 6, 2022
d760966
Compensate '\0'
AlexGuteniev Feb 6, 2022
a9d72ec
reuse capacity
AlexGuteniev Feb 6, 2022
2186b32
noexcept
AlexGuteniev Feb 6, 2022
b1f637c
consistently exclude the current
AlexGuteniev Feb 6, 2022
49be56a
BE workaround
AlexGuteniev Feb 6, 2022
ab89b14
test
AlexGuteniev Feb 6, 2022
ab5f1e9
we are the std
AlexGuteniev Feb 6, 2022
631f375
-newline
AlexGuteniev Feb 6, 2022
284f96b
_STACKSTRACE_
AlexGuteniev Feb 6, 2022
762f72d
unnecessary void return
AlexGuteniev Feb 6, 2022
b5c7624
error safety on initialization
AlexGuteniev Feb 6, 2022
991fb2a
Load modules from the binaries dir.
AlexGuteniev Feb 6, 2022
fa99f51
clang format
AlexGuteniev Feb 6, 2022
9675d08
add escape hatch to alter interface properties
AlexGuteniev Feb 6, 2022
671993b
move initialization to avoid unnecessary attempts
AlexGuteniev Feb 6, 2022
94c6d1d
move ensure_module_symbols_loaded_from_current_dir to avoid unnecess…
AlexGuteniev Feb 6, 2022
fde7ac3
clang format
AlexGuteniev Feb 6, 2022
93d4f1c
0
AlexGuteniev Feb 6, 2022
0cf831d
fallback testing as suggested by @ben-craig
AlexGuteniev Feb 6, 2022
d97d6dc
clang format
AlexGuteniev Feb 6, 2022
caebf99
nothrowing string alloc; symbol options
AlexGuteniev Feb 7, 2022
cd85152
-white
AlexGuteniev Feb 7, 2022
1493f97
entry number:
AlexGuteniev Feb 8, 2022
9bbe0a9
zer0-based
AlexGuteniev Feb 8, 2022
91a78f0
Merge remote-tracking branch 'upstream/main' into stacktrace
AlexGuteniev Feb 14, 2022
71c68d8
add stacktrace to the new header
AlexGuteniev Feb 14, 2022
8011c27
Merge remote-tracking branch 'upstream/main' into stacktrace
AlexGuteniev Feb 17, 2022
7d5e487
thread coverage
AlexGuteniev Feb 18, 2022
f5392fd
Update tests/std/tests/P0881R7_stacktrace/test.cpp
AlexGuteniev Feb 18, 2022
5a2e9c5
Merge remote-tracking branch 'upstream/main' into stacktrace
AlexGuteniev Feb 18, 2022
a275e2e
Merge branch 'stacktrace' of https://github.com/AlexGuteniev/STL into…
AlexGuteniev Feb 18, 2022
ae83a4e
fix header units test
AlexGuteniev Feb 18, 2022
baff31a
[[maybe_useless]]
AlexGuteniev Feb 18, 2022
f82720e
Update stl/inc/stacktrace
AlexGuteniev Mar 11, 2022
8bb418a
Update stacktrace
AlexGuteniev Mar 11, 2022
d6f43d6
some review comments
AlexGuteniev Mar 11, 2022
3ac35ed
some review comments - missed parts
AlexGuteniev Mar 11, 2022
730fa69
clang format
AlexGuteniev Mar 11, 2022
c151a23
clang format
AlexGuteniev Mar 12, 2022
42d88b6
sort
AlexGuteniev Mar 12, 2022
85c76a1
remove directory populating
AlexGuteniev Mar 12, 2022
f8e0a30
header unit test
AlexGuteniev Mar 12, 2022
be59a61
more const
AlexGuteniev Mar 12, 2022
e5a31b9
_NODISCARD
AlexGuteniev Mar 14, 2022
f0e447c
Some review comments
AlexGuteniev Mar 30, 2022
c64b9b2
_NODISCARD_FRIEND
AlexGuteniev Mar 30, 2022
3a75e2d
Update tests/std/tests/P0881R7_stacktrace/test.cpp
AlexGuteniev Mar 30, 2022
f6c962b
<cstddef>
AlexGuteniev Mar 30, 2022
84ff6cb
allocator template parameter
AlexGuteniev Mar 30, 2022
cad7208
latest
AlexGuteniev Mar 30, 2022
f4534c6
comditional stacktrace
AlexGuteniev Mar 30, 2022
5190527
snprintf
AlexGuteniev Apr 1, 2022
11f38e1
|
AlexGuteniev Apr 1, 2022
5d03019
Merge branch 'main' into stacktrace
StephanTLavavej Apr 21, 2022
f793734
Code review feedback.
StephanTLavavej Apr 22, 2022
a52a4fb
Oops, remove argument_type and result_type.
StephanTLavavej Apr 22, 2022
6e9ad95
catch 'em all
AlexGuteniev May 5, 2022
ef4dbdc
Merge remote-tracking branch 'upstream/main' into stacktrace
AlexGuteniev May 27, 2022
194ff85
dynamic import
AlexGuteniev May 27, 2022
4859f12
format
AlexGuteniev May 27, 2022
c2d9ff6
Code review feedback.
StephanTLavavej May 27, 2022
2a5fbdf
explain functional nightmare
AlexGuteniev Jun 1, 2022
414c942
format
AlexGuteniev Jun 1, 2022
bf0c312
skip that actually
AlexGuteniev Jun 1, 2022
6f939fd
_nolock
AlexGuteniev Jun 1, 2022
9881073
struct
AlexGuteniev Jun 1, 2022
b855123
some review comments
AlexGuteniev Jun 1, 2022
7c1d920
-__std_stacktrace_get_debug_interface
AlexGuteniev Jun 1, 2022
6242345
fix build
AlexGuteniev Jun 1, 2022
933be57
_STL_INTERNAL_STATIC_ASSERT
AlexGuteniev Jun 1, 2022
5d813d6
more noexcept
AlexGuteniev Jun 2, 2022
0aadf48
Adjust integers
AlexGuteniev Jun 2, 2022
72d9839
fix build, exception safety
AlexGuteniev Jun 2, 2022
4e95ce4
Merge branch 'main' into stacktrace
StephanTLavavej Jun 3, 2022
7e543c3
Drop `#pragma comment`s for DbgEng.lib and Shlwapi.lib.
StephanTLavavej Jun 3, 2022
9c5af00
Mark _To_voidptr_array/_Adjust_skip as _NODISCARD/noexcept.
StephanTLavavej Jun 3, 2022
70122e6
Use SRWLOCK_INIT.
StephanTLavavej Jun 3, 2022
d0ca01a
Drop debug_symbols3.
StephanTLavavej Jun 3, 2022
eb9f444
Allow clang-format to fix indentation.
StephanTLavavej Jun 3, 2022
9ac0b65
Fix comment: _Callback is what's tested for null.
StephanTLavavej Jun 3, 2022
581cfe3
Improve comment grammar.
StephanTLavavej Jun 3, 2022
524bb81
Fuse srw_lock_guard into dbg_eng_data and use non-static member funct…
StephanTLavavej Jun 3, 2022
5071c5e
more `noexcept`
AlexGuteniev Jun 3, 2022
b6c7c6e
Call atexit() within `if (!initialize_attempted)`.
StephanTLavavej Jun 4, 2022
9354074
Mark try_initialize() as [[nodiscard]]; its return value is important.
StephanTLavavej Jun 4, 2022
afd9eeb
Update stacktrace.cpp
AlexGuteniev Jun 4, 2022
8399e65
Safer overflow handling for 32-bit platform
AlexGuteniev Jun 9, 2022
42cf248
avoid exra ctor
AlexGuteniev Jun 9, 2022
8235667
Update stl/inc/stacktrace
AlexGuteniev Jun 9, 2022
f63eb4d
Update stl/src/stacktrace.cpp
AlexGuteniev Jun 9, 2022
3547133
TCOnsistent
AlexGuteniev Jun 9, 2022
5f280d6
uniform _To_voidptr_array
AlexGuteniev Jun 9, 2022
6b6a43a
Fix internal test harness.
StephanTLavavej Jun 11, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 7 additions & 5 deletions stl/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@ set(HEADERS
${CMAKE_CURRENT_LIST_DIR}/inc/spanstream
${CMAKE_CURRENT_LIST_DIR}/inc/sstream
${CMAKE_CURRENT_LIST_DIR}/inc/stack
${CMAKE_CURRENT_LIST_DIR}/inc/stacktrace
${CMAKE_CURRENT_LIST_DIR}/inc/stdatomic.h
${CMAKE_CURRENT_LIST_DIR}/inc/stdexcept
${CMAKE_CURRENT_LIST_DIR}/inc/stop_token
Expand Down Expand Up @@ -257,6 +258,7 @@ set(IMPLIB_SOURCES
${CMAKE_CURRENT_LIST_DIR}/src/locale0_implib.cpp
${CMAKE_CURRENT_LIST_DIR}/src/nothrow.cpp
${CMAKE_CURRENT_LIST_DIR}/src/sharedmutex.cpp
${CMAKE_CURRENT_LIST_DIR}/src/stacktrace.cpp
${CMAKE_CURRENT_LIST_DIR}/src/syserror_import_lib.cpp
${CMAKE_CURRENT_LIST_DIR}/src/vector_algorithms.cpp
${CMAKE_CURRENT_LIST_DIR}/src/xonce2.cpp
Expand Down Expand Up @@ -457,7 +459,7 @@ function(add_stl_dlls D_SUFFIX THIS_CONFIG_DEFINITIONS THIS_CONFIG_COMPILE_OPTIO
target_compile_options(msvcp${D_SUFFIX}_eha_objects PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};${GL_FLAG};/EHa")

add_library(msvcp${D_SUFFIX} SHARED)
target_link_libraries(msvcp${D_SUFFIX} PRIVATE msvcp${D_SUFFIX}_eha_objects msvcp${D_SUFFIX}_objects msvcp${D_SUFFIX}_init_objects "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib")
target_link_libraries(msvcp${D_SUFFIX} PRIVATE msvcp${D_SUFFIX}_eha_objects msvcp${D_SUFFIX}_objects msvcp${D_SUFFIX}_init_objects "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib" "DbgEng.lib" "Shlwapi.lib")
StephanTLavavej marked this conversation as resolved.
Show resolved Hide resolved
set_target_properties(msvcp${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_NAME "msvcp140_base${D_SUFFIX}${VCLIBS_SUFFIX}")
set_target_properties(msvcp${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
set_target_properties(msvcp${D_SUFFIX} PROPERTIES OUTPUT_NAME "msvcp140${D_SUFFIX}${VCLIBS_SUFFIX}")
Expand All @@ -478,7 +480,7 @@ function(add_stl_dlls D_SUFFIX THIS_CONFIG_DEFINITIONS THIS_CONFIG_COMPILE_OPTIO
target_compile_options(msvcp_1${D_SUFFIX}_objects PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};${GL_FLAG};/EHsc")

add_library(msvcp_1${D_SUFFIX} SHARED)
target_link_libraries(msvcp_1${D_SUFFIX} PRIVATE msvcp_1${D_SUFFIX}_objects msvcp${D_SUFFIX}_satellite_objects "msvcp${D_SUFFIX}" "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib")
target_link_libraries(msvcp_1${D_SUFFIX} PRIVATE msvcp_1${D_SUFFIX}_objects msvcp${D_SUFFIX}_satellite_objects "msvcp${D_SUFFIX}" "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib" "DbgEng.lib" "Shlwapi.lib")
set_target_properties(msvcp_1${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_NAME "msvcp140_1${D_SUFFIX}${VCLIBS_SUFFIX}")
set_target_properties(msvcp_1${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
set_target_properties(msvcp_1${D_SUFFIX} PROPERTIES OUTPUT_NAME "msvcp140_1${D_SUFFIX}${VCLIBS_SUFFIX}")
Expand All @@ -491,7 +493,7 @@ function(add_stl_dlls D_SUFFIX THIS_CONFIG_DEFINITIONS THIS_CONFIG_COMPILE_OPTIO
target_link_libraries(msvcp_2${D_SUFFIX}_objects PRIVATE Boost::math)

add_library(msvcp_2${D_SUFFIX} SHARED)
target_link_libraries(msvcp_2${D_SUFFIX} PRIVATE msvcp_2${D_SUFFIX}_objects msvcp${D_SUFFIX}_satellite_objects msvcp${D_SUFFIX}_implib_objects "msvcp${D_SUFFIX}" "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib")
target_link_libraries(msvcp_2${D_SUFFIX} PRIVATE msvcp_2${D_SUFFIX}_objects msvcp${D_SUFFIX}_satellite_objects msvcp${D_SUFFIX}_implib_objects "msvcp${D_SUFFIX}" "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib" "DbgEng.lib" "Shlwapi.lib")
set_target_properties(msvcp_2${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_NAME "msvcp140_2${D_SUFFIX}${VCLIBS_SUFFIX}")
set_target_properties(msvcp_2${D_SUFFIX} PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
set_target_properties(msvcp_2${D_SUFFIX} PROPERTIES OUTPUT_NAME "msvcp140_2${D_SUFFIX}${VCLIBS_SUFFIX}")
Expand All @@ -513,7 +515,7 @@ function(add_stl_dlls D_SUFFIX THIS_CONFIG_DEFINITIONS THIS_CONFIG_COMPILE_OPTIO
file(WRITE "${_ATOMIC_WAIT_DEF_NAME}" "${_ATOMIC_WAIT_DEF_CONTENTS}")

add_library(msvcp${D_SUFFIX}_atomic_wait SHARED "${_ATOMIC_WAIT_DEF_NAME}")
target_link_libraries(msvcp${D_SUFFIX}_atomic_wait PRIVATE msvcp${D_SUFFIX}_atomic_wait_objects msvcp${D_SUFFIX}_satellite_objects msvcp${D_SUFFIX}_implib_objects "msvcp${D_SUFFIX}" "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib" "advapi32.lib")
target_link_libraries(msvcp${D_SUFFIX}_atomic_wait PRIVATE msvcp${D_SUFFIX}_atomic_wait_objects msvcp${D_SUFFIX}_satellite_objects msvcp${D_SUFFIX}_implib_objects "msvcp${D_SUFFIX}" "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib" "advapi32.lib" "DbgEng.lib" "Shlwapi.lib")
set_target_properties(msvcp${D_SUFFIX}_atomic_wait PROPERTIES ARCHIVE_OUTPUT_NAME "msvcp140_atomic_wait${D_SUFFIX}${VCLIBS_SUFFIX}")
set_target_properties(msvcp${D_SUFFIX}_atomic_wait PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
set_target_properties(msvcp${D_SUFFIX}_atomic_wait PROPERTIES OUTPUT_NAME "${_ATOMIC_WAIT_OUTPUT_NAME}")
Expand All @@ -525,7 +527,7 @@ function(add_stl_dlls D_SUFFIX THIS_CONFIG_DEFINITIONS THIS_CONFIG_COMPILE_OPTIO
target_compile_options(msvcp${D_SUFFIX}_codecvt_ids_objects PRIVATE "${THIS_CONFIG_COMPILE_OPTIONS};${GL_FLAG};/EHsc")

add_library(msvcp${D_SUFFIX}_codecvt_ids SHARED)
target_link_libraries(msvcp${D_SUFFIX}_codecvt_ids PRIVATE msvcp${D_SUFFIX}_codecvt_ids_objects msvcp${D_SUFFIX}_satellite_objects "msvcp${D_SUFFIX}" "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib")
target_link_libraries(msvcp${D_SUFFIX}_codecvt_ids PRIVATE msvcp${D_SUFFIX}_codecvt_ids_objects msvcp${D_SUFFIX}_satellite_objects "msvcp${D_SUFFIX}" "${TOOLSET_LIB}/vcruntime${D_SUFFIX}.lib" "${TOOLSET_LIB}/msvcrt${D_SUFFIX}.lib" "ucrt${D_SUFFIX}.lib" "DbgEng.lib" "Shlwapi.lib")
set_target_properties(msvcp${D_SUFFIX}_codecvt_ids PROPERTIES ARCHIVE_OUTPUT_NAME "msvcp140_codecvt_ids${D_SUFFIX}${VCLIBS_SUFFIX}")
set_target_properties(msvcp${D_SUFFIX}_codecvt_ids PROPERTIES ARCHIVE_OUTPUT_DIRECTORY "${CMAKE_CURRENT_BINARY_DIR}")
set_target_properties(msvcp${D_SUFFIX}_codecvt_ids PROPERTIES OUTPUT_NAME "msvcp140${D_SUFFIX}_codecvt_ids${VCLIBS_SUFFIX}")
Expand Down
1 change: 1 addition & 0 deletions stl/inc/__msvc_all_public_headers.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -120,6 +120,7 @@
#include <spanstream>
#include <sstream>
#include <stack>
#include <stacktrace>
#include <stdexcept>
#include <streambuf>
#include <string>
Expand Down
1 change: 1 addition & 0 deletions stl/inc/header-units.json
Original file line number Diff line number Diff line change
Expand Up @@ -96,6 +96,7 @@
"spanstream",
"sstream",
"stack",
"stacktrace",
"stdatomic.h",
"stdexcept",
"stop_token",
Expand Down
Loading