[vm, test] Fix vm/cc/DartAPI_StackOverflowStackTrace* under MSAN.
The old code would unpoison the stack in one operation, based on the requested size of the stack for threads created by the VM. This may be smaller than the actual size of the stack, leaving some of the stack still poisoned. The new code unpoisons the stack frame by frame, and only frames created by generated code. For exit frames, it guesses the frame size, but for all other frames it is precise. Change-Id: Ice16480feca19727fcfadf19c9ec6cf205607946 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/137725 Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Régis Crelier <regis@google.com> Commit-Queue: Ryan Macnak <rmacnak@google.com>
This commit is contained in:
committed by
commit-bot@chromium.org
parent
29fe8b85c2
commit
bc23401ff2
@@ -315,6 +315,7 @@ class StackFrameIterator : public ValueObject {
|
||||
is_interpreted_(false) {}
|
||||
bool is_interpreted() const { return is_interpreted_; }
|
||||
void CheckIfInterpreted(uword exit_marker);
|
||||
void Unpoison();
|
||||
|
||||
uword fp_;
|
||||
uword sp_;
|
||||
|
||||
Reference in New Issue
Block a user