-
Notifications
You must be signed in to change notification settings - Fork 2.7k
Conversation
In case the active frame has no managed caller, capture the unmanaged frame
Generalize handling of stack allocations and stepping
3050083
to
11a6f63
Compare
Check token type is a method before creating a CordbFunction. Add extra assert to check for invalid tokens
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.
LGTM
In regards to 3.1, my guess is that shiproom won't take this unless you have evidence that this issue will be dramatically more prevalent+painful than it appears to have been in the past. My understanding of the stakes may not be accurate, but from what I see now I'd suggest not going to shiproom with it.
@@ -1550,7 +1550,8 @@ HRESULT CordbModule::GetFunctionFromToken(mdMethodDef token, | |||
RSLockHolder lockHolder(GetProcess()->GetProcessLock()); | |||
|
|||
// Check token is valid. | |||
if ((token == mdMethodDefNil) || | |||
if ((token == mdMethodDefNil) || | |||
(TypeFromToken(token) != mdtMethodDef) || |
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.
Did you hit this error even without the runtime portion of the change, or it only shows up together with the runtime change? If it is the former I think this is fine. If it is the latter I'd be worried that the runtime change has broken something we don't fully understand and a bad token here happened to be one symptom of it.
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.
This occurred in the baseline too. It could be a separate
PR.
FYI /cc @davidfowl |
* Make ControllerStackInfo::m_returnFrame private * Make ControllerStackInfo always capture a return frame In case the active frame has no managed caller, capture the unmanaged frame * Fix step over stackalloc Generalize handling of stack allocations and stepping * Fix GetFunctionFromToken() argument checking Check token type is a method before creating a CordbFunction. Add extra assert to check for invalid tokens
* Make ControllerStackInfo::m_returnFrame private * Make ControllerStackInfo always capture a return frame In case the active frame has no managed caller, capture the unmanaged frame * Fix step over stackalloc Generalize handling of stack allocations and stepping * Fix GetFunctionFromToken() argument checking Check token type is a method before creating a CordbFunction. Add extra assert to check for invalid tokens
Generalize handling of stackalloc. Funclets were just a special case of an in function stack allocation.
Currently includes 5 commits
Fixes #14926
This is a safer alternative to #26688
/cc @dotnet/dotnet-diag