Skip to content

Replace call stack keyword with path to runtime directory #2

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

Merged
merged 3 commits into from
Sep 10, 2024

Conversation

VincentBu
Copy link

Since we don't know the call stack of given dump ahead of time, it doesn't make sense to set 'callStackKeyword' before running the analyzer script.
A workaround for this is: searching for the first line which contains path of runtime.(It's likely to be some method in runtime or ReliabilityFramework).
For instance, the line 3

00 (Inline Function) --------`--------     KERNELBASE!DebugBreak [minkernel\kernelbase\debug.c @ 143] 
01 00000051`10ddd8a8 00007ffb`37b068b0     KERNELBASE!wil::details::DebugBreak+0x2 [onecore\internal\sdk\inc\wil\opensource\wil\result_macros.h @ 1836] 
02 00000051`10ddd8b0 00000051`10ddd8e8     ReliabilityFramework!ReliabilityFramework.MyDebugBreak+0xa0 [Q:\runtime\src\tests\GC\Stress\Framework\ReliabilityFramework.cs @ 541] 
03 00000051`10ddd8b8 000001c8`77b621f0     0x00000051`10ddd8e8
04 00000051`10ddd8c0 00007ffb`95b21ed8     0x000001c8`77b621f0
05 00000051`10ddd8c8 00007ffb`95b21bd8     coreclr!`string'
06 00000051`10ddd8d0 00000051`10ddd8b0     coreclr!`string'
07 00000051`10ddd8d8 00007ffb`37655357     0x00000051`10ddd8b0
08 00000051`10ddd8e0 9abcdef0`12345678     ReliabilityFramework!RFLogging.WriteToInstrumentationLog(ReliabilityTestSet, LoggingLevels, System.String)+0x16dbc47
09 00000051`10ddd8e8 00007ffb`95afbff8     0x9abcdef0`12345678
0a 00000051`10ddd8f0 ffffffff`ffffffff     coreclr!vtable_InlinedCallFrame
0b 00000051`10ddd8f8 00007ffb`361e19a0     0xffffffff`ffffffff
0c 00000051`10ddd900 00000051`10ddd8b0     0x00007ffb`361e19a0
0d 00000051`10ddd908 00007ffb`37b068b0     0x00000051`10ddd8b0
0e 00000051`10ddd910 00000051`10ddd960     ReliabilityFramework!ReliabilityFramework.MyDebugBreak+0xa0 [Q:\runtime\src\tests\GC\Stress\Framework\ReliabilityFramework.cs @ 541] 
0f 00000051`10ddd918 00000000`00000000     0x00000051`10ddd960

"source": [
"var analyzer = new DumpAnalyzer(windbgPath);\n",
"analyzer.SaveCallStack(debugCommandList, dumpFolder);\n",
"analyzer.GetAndSaveKey(callStackKeyword, dumpFolder);"
"analyzer.GetAndSaveKey(runtimeRoot, dumpFolder);"
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be changed back to looking at the ::gc_heap:: and then we should handle all the call stacks that don't contain "::gc_heap::" as unknown by aggregating them in the "Unknown" item in the dictionary.

@mrsharm mrsharm merged commit d72dcbd into mrsharm:UtilityNotebooks Sep 10, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants