-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Fix sos clrstack unwinding for the special HelperMethodFrame. #1946
Conversation
The issue this fixes: #1950 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Is the byreference passing of SBFrame just a performance optimization, or is the value actually modified anywhere?
If it is just a performance optimization, it may be nice to mark all the byrefererence arguments with const
to make the intent clear.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
All the them were added for perf reasons. I'll add const to them.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I get compiler errors when it is used to call the lldb API:
/ssd/coreclr/src/ToolBox/SOS/lldbplugin/debugclient.cpp:990:30: error: member function 'FindRegister' not viable: 'this' argument has type 'const lldb::SBFrame', but function is not
marked const
lldb::SBValue regValue = frame.FindRegister(name);
/ssd/coreclr/src/ToolBox/SOS/lldbplugin/debugclient.cpp:714:23: error: member function 'GetNumSections' not viable: 'this' argument has type 'const lldb::SBModule', but function is
not marked const
int numSections = module.GetNumSections();
^~~~~~
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It would be nice to add the const as a comment /* const */
then
Add and implement new ICorDebugDataTarget4 unwind interface using lldb stack unwinder ABIs. The implementation does a linear search of the native frames for the stack pointer provided. It doesn't happen often so the performance is fine. Stub out the DBI's ICorDebugDataTarget4 (in ShimDataTarget::VirtualUnwind) for now. Since PAL_VirtualUnwindOutOfProc is disabled it makes sense to just return E_NOTIMPL. Fix bpmd command so it doesn't stop in lldb when it isn't a CLRN exception (continues).
Fix sos clrstack unwinding for the special HelperMethodFrame.
…b116) [tfs-changeset: 1545107]
Fix sos clrstack unwinding for the special HelperMethodFrame. Commit migrated from dotnet/coreclr@810b116
…mmit dotnet/coreclr@810b116) [tfs-changeset: 1545107] Commit migrated from dotnet/coreclr@c0ad8ad
Add and implement new ICorDebugDataTarget4 unwind interface using lldb stack unwinder ABIs. The implementation
does a linear search of the native frames for the stack pointer provided. It doesn't happen often so the
performance is fine.
Stub out the DBI's ICorDebugDataTarget4 (in ShimDataTarget::VirtualUnwind) for now. Since PAL_VirtualUnwindOutOfProc
is disabled it makes sense to just return E_NOTIMPL.
Fix bpmd command so it doesn't stop in lldb when it isn't a CLRN exception (continues).