msvc-based stacktrace should also allow to determine the module image path
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 38/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- cpp
- Domain
- operating-systems, tooling
Research direction
Start by locating the MSVC-based stacktrace implementation and read how it currently determines module names. Review IDebugSymbols::GetModuleByOffset, GetModuleNames, and RtlCaptureStackBackTrace; done means module image paths are included and the reported empty-stacktrace case is addressed without breaking existing stacktrace behavior.
Written by the indexing model from the issue text.
Description
The current msvc-based stacktrace only determines the module name - not its complete path - contrary to the full featured unixoid implementation. It turns out that this is rather simple to realize and valuable when attempting to analyze application problems by inspecting the referred to image paths. It means that you first calls IDebugSymbols::GetModuleByOffset followed by IDebugSymbols::GetModuleNames using the ImageNameBuffer, ImageNameBufferSize, and ImageNameSize parameters. I'm using this extended information in my own stacktrace implementation.
There is another way of improving the quality of msvc stacktraces related to the problem described capturestackbacktrace-randomly-fails-after-initial. I'm aware that the current stacktrace implementation has eliminated any explicit call of CoInitializeEx, but that does not prevent the user to make such a call. Instead of rewriting RtlCaptureStackBackTrace as suggested in this article, a very simple workaround seems to help here. Before calling RtlCaptureStackBackTrace with a static buffer (128), just call RtlCaptureStackBackTrace with the FramesToCapture equal to just 1 ignoring this stub call, which prevents the potential empty stacktrace situation for the second call.
Would there be interest for a corresponding PULL request?
- Dominant language
- C++
- Stars
- 497
- Forks
- 86
- Avg merge
- 8d 20h
- Merged PRs (30d)
- 3
Contributor guide
No contributing guide indexed for this repository
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.
More from boostorg/stacktrace
-
Difficulty 4/5 3-5 days Newbie friendliness 52/100
boostorg/stacktrace#233 ·
-
Ошибка в Inscape Open
Difficulty 5/5 Over a week Newbie friendliness 15/100
boostorg/stacktrace#211 · 1 comment ·
-
Difficulty 4/5 3-5 days Newbie friendliness 35/100
boostorg/stacktrace#208 · 6 comments ·
-
Difficulty 3/5 1-2 days Newbie friendliness 48/100
boostorg/stacktrace#197 · 3 comments ·
-
enhancement help wanted
Difficulty 5/5 Over a week Newbie friendliness 25/100
boostorg/stacktrace#176 · 1 comment ·
All issues in boostorg/stacktrace
Similar issues
-
AuTest Bug Tests
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
apache/trafficserver#13714 ·
-
bug build
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
facebookincubator/velox#19143 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
tenstorrent/tt-metal#57393 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
objectionary/eo-graphs#74 ·