RESOLVED FIXED 158131
ShadowChicken/DebuggerCallFrame don't properly handle when the entry stack frame is a tail deleted frame
https://bugs.webkit.org/show_bug.cgi?id=158131
Summary ShadowChicken/DebuggerCallFrame don't properly handle when the entry stack fr...
Saam Barati
Reported 2016-05-26 15:04:22 PDT
They both fail for various reasons
Attachments
patch (23.88 KB, patch)
2016-05-26 15:27 PDT, Saam Barati
ysuzuki: review+
Saam Barati
Comment 1 2016-05-26 15:27:28 PDT
WebKit Commit Bot
Comment 2 2016-05-26 15:28:56 PDT
Attachment 279915 [details] did not pass style-queue: ERROR: Source/JavaScriptCore/interpreter/ShadowChicken.cpp:298: Multi line control clauses should use braces. [whitespace/braces] [4] Total errors found: 1 in 7 files If any of these errors are false positives, please file a bug against check-webkit-style.
Yusuke Suzuki
Comment 3 2016-05-26 23:29:52 PDT
Comment on attachment 279915 [details] patch View in context: https://bugs.webkit.org/attachment.cgi?id=279915&action=review r=me > Source/JavaScriptCore/ChangeLog:17 > + ``` Nice catch. > Source/JavaScriptCore/ChangeLog:25 > + current machine frame. This is wrong because if the entry frames OK. Previously, if there are the logical / physical stack as follows, logical: [F1][TD2][TD3][TD4][F2] => physical: [F1][F2] => First, we record [F2], and when visiting [F1], we push [TD4][TD3][TD2] (by retrieving them from the log) and push [F1]. But this assumes that TD frames are always between non TD frames. In tail deleted entry case, that becomes as follows, logical: [TD1][TD2][TD3][TD4][F1] => physical: [F1] => In that case, before this patch, we just record [F1] and finish. > Source/JavaScriptCore/debugger/DebuggerCallFrame.cpp:-81 > - ASSERT(exec); OK, so the exec of the entry tail deleted frame becomes `callFrame->lexicalGlobalObject()->globalExec()`.
Saam Barati
Comment 4 2016-05-27 13:25:19 PDT
Thanks for the review. landed in: http://trac.webkit.org/changeset/201465
Note You need to log in before you can comment on or make changes to this bug.