- 18 Dec, 2019 1 commit
-
-
Simon Zünd authored
When V8 throws an uncaught exception, we store a JSMessageObject with a stack trace and source positions on the isolate itself. The JSMessageObject can be retrieved by a TryCatch scope and is used by the inspector to provide additional information to the DevTools frontend (besides the exception). Introducing top-level await for REPL mode causes all thrown exceptions to be turned into a rejected promise. The implicit catch block that does this conversion clears the JSMessageObject from the isolate as to not leak memory. This CL preserves the JSMessageObject when the debugger is active and stores the JSMessageObject on the rejected promise itself. The inspector is changed to retrieve the JSMessageObject in the existing catch handler and pass the information along to the frontend. Drive-by: This CL removes a inspector test that made assumptions when a promise is cleaned up by the GC. These assumptions no longer hold since we hold on to the promise longer. Bug: chromium:1021921 Change-Id: Id0380e2cf3bd79aca05191bc4f3c616f6ced8db7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967375 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#65497}
-
- 09 Aug, 2019 1 commit
-
-
Yury Semikhatsky authored
Since the same value is also returned in 'result' field it is still populated in accord with 'returnByValue' parameter. This behavior is consistent with 'evaluate'. R=dgozman@chromium.org, lushnikov@chromium.org Bug: v8:9509 Change-Id: I9f72682f87492ce5cd0759dce75ab3d75a5fe31c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1707331Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Yury Semikhatsky <yurys@chromium.org> Cr-Commit-Position: refs/heads/master@{#63134}
-
- 31 May, 2018 2 commits
-
-
Sergiy Byelozyorov authored
This reverts commit 003159e7. Reason for revert: breaks roll into Chromium: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_headless_rel/3140 Original change's description: > [inspector] RemoteObject.description should be empty for primitive type > > We currently report description field for numbers. On client side user > can calculate description as remoteObject.unserializableValue || > (remoteObject.value + ''). Let's report description only for objects to > simplify value -> remoteObject logic a bit. > > R=dgozman@chromium.org > TBR=jgruber@chromium.org > > Bug: chromium:595206 > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel > Change-Id: I91356a44aa3024e20c8f966869abf4a41b88e4bc > Reviewed-on: https://chromium-review.googlesource.com/737485 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Pavel Feldman <pfeldman@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53453} TBR=dgozman@chromium.org,pfeldman@chromium.org,kozyatinskiy@chromium.org Change-Id: Ifc184e1ac158d9ea7034922a7250444448fac49f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:595206 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/1081207Reviewed-by: Sergiy Byelozyorov <sergiyb@chromium.org> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#53461}
-
Alexey Kozyatinskiy authored
We currently report description field for numbers. On client side user can calculate description as remoteObject.unserializableValue || (remoteObject.value + ''). Let's report description only for objects to simplify value -> remoteObject logic a bit. R=dgozman@chromium.org TBR=jgruber@chromium.org Bug: chromium:595206 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I91356a44aa3024e20c8f966869abf4a41b88e4bc Reviewed-on: https://chromium-review.googlesource.com/737485 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Pavel Feldman <pfeldman@chromium.org> Cr-Commit-Position: refs/heads/master@{#53453}
-
- 21 Nov, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
Old instrumentation was designed to collect promise creation stack and promise scheduled stack together. In DevTools for last 6 months we show only creation stack for promises. We got strong support from users for new model. Now we can drop support for scheduled stacks and simplify implementation. New promise instrumentation is straightforward: - we send kDebugPromiseThen when promise is created by .then call, - we send kDebugPromiseCatch when promise is created by .catch call, - we send kDebugWillHandle before chained callback and kDebugDidHandle after chained callback, - and we send separate kDebugAsyncFunctionPromiseCreated for internal promise inside async await function. Advantages: - we reduce amount of captured stacks (we do not capture stack for promise that constructed not by .then or .catch), - we can consider async task related to .then and .catch as one shot since chained callback is executed once, - on V8 side we can implement required instrumentation using only promise hooks, Disadvantage: - see await-promise test, sometimes scheduled stack was useful since we add catch handler in native code, Implementation details: - on kInit promise hook we need to figure out why promise was created. We analyze builtin functions until first user defined function on current stack. If there is kAsyncFunctionPromiseCreate function then we send kDebugAsyncFunctionPromiseCreated event. If there is kPromiseThen or kPromiseCatch then only if this function is bottom builtin function we send corresponded event to inspector. We need it because Promise.all internally calls .then and in this case we have Promise.all and Promise.then on stack at the same time and we do not need to report this internally created promise to inspector. Bug: chromium:778796 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I53f47ce8c5c4a9897655c3396c249ea59529ae47 Reviewed-on: https://chromium-review.googlesource.com/765208 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#49553}
-
- 07 Jul, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
Fetch message and stack trace from error object if Promise is rejected with native JS error. Bug: v8:6249 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Icf84205eb9d16e860600b7cc916ddcb1922be040 Reviewed-on: https://chromium-review.googlesource.com/563096Reviewed-by: Jakob Gruber <jgruber@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46483}
-
- 10 Jan, 2017 1 commit
-
-
kozyatinskiy authored
... which were done after the promise has been resolved. Goal of this CL - change promise instrumentation to support better callbacks, chained after promise resolution and prepare instrumentation for adding new asyncTaskCreated instrumentation. Instrumentation changes: - asyncTaskScheduled(recurring) when promise is fulfilled or rejected, - asyncTaskCancelled when promise is collected (since [1] we can be sure that promise will survive scheduled microtasks). Minor changes: - async task type in inspector <-> debugger API transferred by enum instead of string, - Debug manages async task ids based on promise objects. More details: https://docs.google.com/document/d/1u19N45f1gSF7M39mGsycJEK3IPyJgIXCBnWyiPeuJFE [1] https://codereview.chromium.org/2581503003/ BUG=chromium:632829,v8:5738 R=dgozman@chromium.org,yangguo@chromium.org,gsathya@chromium.org Review-Url: https://codereview.chromium.org/2578923002 Cr-Commit-Position: refs/heads/master@{#42178}
-
- 03 Oct, 2016 1 commit
-
-
kozyatinskiy authored
Introduce Protocol.Domain.method(args) and Protocol.Domain.onEventName() instead. Renamed InspectorTest.evaluateInPage -> InspectorTest.addScript. Improved InspectorTest.logMessage. BUG=chromium:635948 R=dgozman@chromium.org,alph@chromium.org Review-Url: https://codereview.chromium.org/2390733002 Cr-Commit-Position: refs/heads/master@{#39942}
-
- 02 Oct, 2016 1 commit
-
-
kozyatinskiy authored
- added most part of inspector tests that depends only on JavaScript domains. BUG=chromium:635948 R=dgozman@chromium.org,alph@chromium.org Committed: https://crrev.com/9ddbdab195923fc87fae3587ae06c5c1c5ca6d79 Review-Url: https://codereview.chromium.org/2369753004 Cr-Original-Commit-Position: refs/heads/master@{#39897} Cr-Commit-Position: refs/heads/master@{#39931}
-
- 30 Sep, 2016 2 commits
-
-
machenbach authored
Revert "[inspector] added inspector test runner [part 3]" This reverts commit f3f9f444. Revert "[inspector] added inspector test runner [part 4]" This reverts commit 4a5f5d09. Revert "[inspector] added inspector test runner [part 5]" This reverts commit 9ddbdab1. Reverting this in order to revert parts 1-2 which block the roll: https://codereview.chromium.org/2379053003/ BUG=chromium:635948 TBR=kozyatinskiy@chromium.org, NOTRY=true Review-Url: https://codereview.chromium.org/2379303002 Cr-Commit-Position: refs/heads/master@{#39908}
-
kozyatinskiy authored
- added most part of inspector tests that depends only on JavaScript domains. BUG=chromium:635948 R=dgozman@chromium.org,alph@chromium.org Review-Url: https://codereview.chromium.org/2369753004 Cr-Commit-Position: refs/heads/master@{#39897}
-