`<stacktrace>`: ARM64EC isn't working properly
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 11.1k
- Forks
- 1.7k
- Avg merge
- 4d 15h
- Merged PRs (30d)
- 22
Description
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:
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:
Similarly, in the header units and modules test,
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.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with tests/std/tests/P0881R7_stacktrace/test.cpp, especially the expected innermost name and description trimming, then compare tests/std/include/test_header_units_and_modules.hpp. Investigate whether ARM64EC symbol data or dbgeng.dll causes the offset to be removed; done means the relevant ARM64EC tests preserve the expected function names and pass.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- operating-systems, testing-qa
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100