You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The end of an unwind is an awkward thing, because you need to distinguish between "this method failed to compute a caller frame" and "this method is confident that there are no more stack frames". Right now we don't bother making that distinction, and instead just always try all the methods, stopping only when they all fail. As a result we can "hallucinate" extra frames at the bottom of the stack with scanning.
Breakpad has some places where it considers a method computing "null" for certain register values as a confident assertion that the stack if fully unwound. This seems the most reasonable to do for CFI.
We should do better here, but the bottom of the stack is the least interesting so it's not a big deal if it's full of garbage.
The text was updated successfully, but these errors were encountered:
It might be worth thinking about the desired API here a little bit. Right now the GetCallerFrame returns Option<StackFrame>, so you either get a frame or you don't. It might be nice at the very least to use a tri-state enum like:
The end of an unwind is an awkward thing, because you need to distinguish between "this method failed to compute a caller frame" and "this method is confident that there are no more stack frames". Right now we don't bother making that distinction, and instead just always try all the methods, stopping only when they all fail. As a result we can "hallucinate" extra frames at the bottom of the stack with scanning.
Breakpad has some places where it considers a method computing "null" for certain register values as a confident assertion that the stack if fully unwound. This seems the most reasonable to do for CFI.
We should do better here, but the bottom of the stack is the least interesting so it's not a big deal if it's full of garbage.
The text was updated successfully, but these errors were encountered: