While working on enabling ARM64EC runtime test coverage (on an ARM64 host), I'm observing that <stacktrace> doesn't work.
For example, we expect "P0881R7_stacktrace!all_innermost" here:
|
assert(trim_past_plus(all.at(0).description()) == "P0881R7_stacktrace!all_innermost"sv); |
This works for x64, x86, and ARM64. But for ARM64EC, we get "P0881R7_stacktrace". The content of all.at(0).description() is "P0881R7_stacktrace+0xB0E0" and the "+0xB0E0" is being trimmed off:
|
string trim_past_plus(string str) { |
|
if (size_t pos = str.rfind("+", string::npos); pos != string::npos) { |
|
str.resize(pos); |
|
} |
|
return str; |
|
} |
Similarly, in the header units and modules test,
|
auto desc = stacktrace::current().at(0).description(); |
|
|
|
if (auto pos = desc.find("!"); pos != string::npos) { |
|
desc = desc.substr(pos + 1); |
|
} |
|
|
|
if (auto pos = desc.find("+"); pos != string::npos) { |
|
desc.resize(pos); |
|
} |
|
|
|
assert(desc == "test_stacktrace"); |
desc is "P2465R3_standard_library_modules+0x95254" before trimming and "P2465R3_standard_library_modules" after.
My understanding of ARM64EC is extremely limited, so I don't know if this is an issue in dbgeng.dll, or the debug info that the compiler is emitting, or what.
While working on enabling ARM64EC runtime test coverage (on an ARM64 host), I'm observing that
<stacktrace>doesn't work.For example, we expect
"P0881R7_stacktrace!all_innermost"here:STL/tests/std/tests/P0881R7_stacktrace/test.cpp
Line 193 in defc75b
This works for x64, x86, and ARM64. But for ARM64EC, we get
"P0881R7_stacktrace". The content ofall.at(0).description()is"P0881R7_stacktrace+0xB0E0"and the"+0xB0E0"is being trimmed off:STL/tests/std/tests/P0881R7_stacktrace/test.cpp
Lines 103 to 108 in defc75b
Similarly, in the header units and modules test,
STL/tests/std/include/test_header_units_and_modules.hpp
Lines 851 to 861 in defc75b
descis"P2465R3_standard_library_modules+0x95254"before trimming and"P2465R3_standard_library_modules"after.My understanding of ARM64EC is extremely limited, so I don't know if this is an issue in
dbgeng.dll, or the debug info that the compiler is emitting, or what.