- 13 Jul, 2018 1 commit
-
-
Johannes Henkel authored
This is in preparation of removing the using statements that are currently in third_party/inspector_protocol/lib/Collections_h.template. Once this is done I can update https://chromium-review.googlesource.com/c/deps/inspector_protocol/+/1135832 some more and eventually roll it into v8 (and chromium's third party). R=dgozman Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I75a7b291715f241e3b58fb97ac91a0b0ff0ca70b Reviewed-on: https://chromium-review.googlesource.com/1135968 Commit-Queue: Johannes Henkel <johannes@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#54422}
-
- 05 Jun, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
Currently we enable instrumentation if debugger is active. With this approach we can not: - capture async stack when debugger is disabled, - avoid async instrumentation overhead when debugger is enabled and async stacks are disabled. R=dgozman@chromium.org,yangguo@chromium.org Bug: none Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I19400c4c4e12b6c9b5a980fb6bd3293bac6e6a64 Reviewed-on: https://chromium-review.googlesource.com/1081494 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#53530}
-
- 03 Jun, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
Removed most of mirrors.js and debug.js. Further steps: - migrate liveedit.js to native, - remove debugger context. R=yangguo@chromium.org TBR=leszeks@chromium.org Bug: v8:5530 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I291ef20ef3c63a424d32e3e0c9d0962a6ca382d1 Reviewed-on: https://chromium-review.googlesource.com/1081176 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#53480}
-
- 31 May, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
If async function A awaited async function B, stepOut from function B should go to function A. Bug: v8:7753 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Iedc1d8b85a52aa60519e56b319325436fc2168c9 Reviewed-on: https://chromium-review.googlesource.com/1054618 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#53451}
-
- 30 May, 2018 2 commits
-
-
Alexey Kozyatinskiy authored
New intstrumentation consists of: - kAsyncFunctionSuspended when async function is suspended on await (called on each await), - kAsyncFunctionFinished when async function is finished. Old instrumentation was based on reusing async function promise. Using this promise produces couple side effects: - for any promise instrumentation we first need to check if it is special case for async function promise or not - it requires expensive reading from promise object. - we capture stack for async functions even if it does not contain awaits. - we do not properly cancel async task created for async function. New intsrumntation resolved all these problems as well as provide clear mapping between async task and generator which we can use later to fetch scope information for async functions on pause. R=dgozman@chromium.org,yangguo@chromium.org Bug: v8:7078 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ifdcec947d91e6e3d4d5f9029bc080a19b8e23d41 Reviewed-on: https://chromium-review.googlesource.com/1043096Reviewed-by:
Sathya Gunasekaran <gsathya@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#53445}
-
Alexey Kozyatinskiy authored
With this CL we use interrupt for pause in two cases: - when we process Debugger.pause on interruption, - when we would like to break as soon as possible after OOM. In all other cases, e.g. for async step into we use break on function call by calling StepIn debugger action. In mentioned cases we should not actually use interrupt as well: - Debugger.pause in this case scheduled using interrupt and we may just break right now without requesting another interrupt, unfortunately blink side is not ready, - we should use more reliable way to break right after near OOM callback, otherwise we can get this callback, increase limit, request break on next interrupt, before interrupt get another huge memory allocation and crash. There are couple advantages: - we get much better break locations for async stepping (see inspector tests expectations), - we can remove DEBUG_BREAK interruption (it should speedup blackboxing with async tasks, see removed todo in debug.cc for details) - it is required preparation step for async step out, (see https://chromium-review.googlesource.com/c/v8/v8/+/1054618) Bug: v8:7753 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Iabd7627dbffa9a0eab1736064caf589d02591926 Reviewed-on: https://chromium-review.googlesource.com/1054155 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#53439}
-
- 27 Mar, 2018 1 commit
-
-
Ulan Degenbaev authored
The embedder can get notification when V8 heap size approaches the heap limit and can extend the heap limit if needed using - v8::Isolate::AddNearHeapLimitCallback - v8::Isolate::RemoveNearHeapLimitCallback This generalizes the exiting v8::debug::SetOutOfMemoryCallback API. Bug: chromium:824214 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ia444cb7efb6fe85c57fa3785e8fd1d8b654a5224 Reviewed-on: https://chromium-review.googlesource.com/979447 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#52238}
-
- 19 Mar, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
This is a reland of 14824520 Original change's description: > [inspector] added Runtime.terminateExecution > > Runtime.terminateExecution terminates current or next JavaScript > call. Termination flag is automatically reset as soon as v8 call > or microtasks are completed. > > R=pfeldman@chromium.org > > Bug: chromium:820640 > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel > Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7 > Reviewed-on: https://chromium-review.googlesource.com/957386 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51912} Bug: chromium:820640 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I6dd30f65c06c2b7eefd1e7beb9a3cf50ea5bf8cd Reviewed-on: https://chromium-review.googlesource.com/967323 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#52004}
-
- 17 Mar, 2018 2 commits
-
-
Michael Achenbach authored
This reverts commit 14824520. Reason for revert: Breaks chromium tsan in roll: https://chromium-review.googlesource.com/c/chromium/src/+/967682 Original change's description: > Reland "[inspector] added Runtime.terminateExecution" > > This is a reland of 98dec8f2 > > Original change's description: > > [inspector] added Runtime.terminateExecution > > > > Runtime.terminateExecution terminates current or next JavaScript > > call. Termination flag is automatically reset as soon as v8 call > > or microtasks are completed. > > > > R=pfeldman@chromium.org > > > > Bug: chromium:820640 > > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel > > Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7 > > Reviewed-on: https://chromium-review.googlesource.com/957386 > > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > > Reviewed-by: Dmitry Gozman <dgozman@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#51912} > > Bug: chromium:820640 > Change-Id: I8f270c2fdbe732f0c40bfb149d26a6e73d988253 > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel > Reviewed-on: https://chromium-review.googlesource.com/966681 > Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#52002} TBR=dgozman@chromium.org,pfeldman@chromium.org,kozyatinskiy@chromium.org Change-Id: I2f3d24b238f479082bfed349363240887b5ba751 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:820640 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/967781Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#52003}
-
Alexey Kozyatinskiy authored
This is a reland of 98dec8f2 Original change's description: > [inspector] added Runtime.terminateExecution > > Runtime.terminateExecution terminates current or next JavaScript > call. Termination flag is automatically reset as soon as v8 call > or microtasks are completed. > > R=pfeldman@chromium.org > > Bug: chromium:820640 > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel > Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7 > Reviewed-on: https://chromium-review.googlesource.com/957386 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51912} Bug: chromium:820640 Change-Id: I8f270c2fdbe732f0c40bfb149d26a6e73d988253 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/966681Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#52002}
-
- 14 Mar, 2018 1 commit
-
-
Michael Achenbach authored
This reverts commit 98dec8f2. Reason for revert: Speculative revert as win32/64 debug seems to hang after this: https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20debug/builds/13691 Original change's description: > [inspector] added Runtime.terminateExecution > > Runtime.terminateExecution terminates current or next JavaScript > call. Termination flag is automatically reset as soon as v8 call > or microtasks are completed. > > R=pfeldman@chromium.org > > Bug: chromium:820640 > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel > Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7 > Reviewed-on: https://chromium-review.googlesource.com/957386 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51912} TBR=dgozman@chromium.org,pfeldman@chromium.org,kozyatinskiy@chromium.org Change-Id: I25258ca5e9a2c2c514f0834da0ef0f5e75421d52 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:820640 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/962002Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51914}
-
- 13 Mar, 2018 1 commit
-
-
Alexey Kozyatinskiy authored
Runtime.terminateExecution terminates current or next JavaScript call. Termination flag is automatically reset as soon as v8 call or microtasks are completed. R=pfeldman@chromium.org Bug: chromium:820640 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Ie21c123be3a61fe25cf6e04c38a8b6c664622ed7 Reviewed-on: https://chromium-review.googlesource.com/957386 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#51912}
-
- 26 Feb, 2018 1 commit
-
-
Yang Guo authored
R=herhut@chromium.org, jgruber@chromium.org Bug: v8:7310, v8:5510 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Icefd10b6cc210e5bb2684d18b091179ead387326 Reviewed-on: https://chromium-review.googlesource.com/934445 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51552}
-
- 02 Feb, 2018 1 commit
-
-
jgruber authored
This check verifies that all .h files in the src/ directory have an include guard of the form #ifndef V8_PATH_TO_FILE_H_ #define V8_PATH_TO_FILE_H_ // ... #endif // V8_PATH_TO_FILE_H_ The check can be skipped with a magic comment: // PRESUBMIT_INTENTIONALLY_MISSING_INCLUDE_GUARD Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng;master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0a7b96abec289ad60f64ba8418f1892a6969596d Reviewed-on: https://chromium-review.googlesource.com/897487Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#51079}
-
- 29 Nov, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
Some embedders primitive can trigger execution in current JavaScript instance or in another (e.g. MessageChannel). With this CL external async task can be local as well. R=dgozman@chromium.org Bug: chromium:661705 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I82c68a021c2c25bc67a706c4bfed8c1a2b2388c5 Reviewed-on: https://chromium-review.googlesource.com/792015 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#49728}
-
- 23 Nov, 2017 2 commits
-
-
Alexey Kozyatinskiy authored
If async stack is longer then max depth, we add externalParent as id, client can fetch next max depth async stacks by Debugger.getStackTrace. R=dgozman@chromium.org Bug: chromium:778796 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I89d461e672251f03fb239f4f16ae3b0374fce766 Reviewed-on: https://chromium-review.googlesource.com/776242 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#49595}
-
Alexey Kozyatinskiy authored
If protocol client needs to make step-into async call: - pause before async call using any Debugger agent capabilities, - call Debugger.stepInto with breakOnAsyncCall flag, - wait for Debugger.paused event, this event will contain asyncCallStackTrace if async call is scheduled, - call Debugger.pauseOnAsyncCall on each known target, - resume execution in current debugger by Debugger.resume. Bug: chromium:778796 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I40c56278e7b1ceafc3bf81608b8ca6716c2b3168 Reviewed-on: https://chromium-review.googlesource.com/773573 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#49594}
-
- 22 Nov, 2017 3 commits
-
-
Alexey Kozyatinskiy authored
Sometimes we need to capture stack trace on one debugger and use it later as a parent stack on another debugger (e.g. worker.postMessage). This CL includes following addition to our protocol and v8-inspector.h: - added Runtime.StackTraceId, this id represents stack trace captured on debugger with given id, - protocol client can fetch Runtime.StackTrace by Runtime.StacKTraceId using Debugger.getStackTrace method, - externalParent field is added to Debugger.paused event, it may contain external parent stack trace, - V8Inspector::storeCurrentStackTrace captures current stack trace and returns V8StackTraceId for embedder this id can be used as argument for V8Inspector::externalAsyncTaskStarted and V8Inspector::externalAsyncTaskFinished method. Any async stack trace captured between these calls will get passed external stack trace as external parent. These methods are designed to be called on different debuggers. If async task is scheduled and started on one debugger user should continue to use asyncTask* API, - Debugger.enable methods returns unique debuggerId. TBR=dgozman@chromium.org,jgruber@chromium.org Bug: chromium:778796 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I2c1a2b2e30ed69ccb61d10f08686f4edb09f50e4 Reviewed-on: https://chromium-review.googlesource.com/786274 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#49591}
-
Clemens Hammacher authored
This reverts commit 3a41b697. Reason for revert: Break msvc: https://build.chromium.org/p/client.v8/builders/V8%20Win64%20-%20msvc/builds/250 Original change's description: > [inspector] introduced stackTraceId and externalAsyncTask API > > Sometimes we need to capture stack trace on one debugger and use it > later as a parent stack on another debugger (e.g. worker.postMessage). > > This CL includes following addition to our protocol and v8-inspector.h: > - added Runtime.StackTraceId, this id represents stack trace captured > on debugger with given id, > - protocol client can fetch Runtime.StackTrace by > Runtime.StacKTraceId using Debugger.getStackTrace method, > - externalParent field is added to Debugger.paused event, it may > contain external parent stack trace, > - V8Inspector::storeCurrentStackTrace captures current stack trace > and returns V8StackTraceId for embedder this id can be used as > argument for V8Inspector::externalAsyncTaskStarted and > V8Inspector::externalAsyncTaskFinished method. Any async stack > trace captured between these calls will get passed external stack > trace as external parent. These methods are designed to be called > on different debuggers. If async task is scheduled and started on > one debugger user should continue to use asyncTask* API, > - Debugger.enable methods returns unique debuggerId. > > Bug: chromium:778796 > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng > Change-Id: I16aba0d04bfcea90f3e187e635a0588c92354539 > Reviewed-on: https://chromium-review.googlesource.com/754183 > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Dmitry Gozman <dgozman@chromium.org> > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49582} TBR=dgozman@chromium.org,pfeldman@chromium.org,yangguo@chromium.org,kozyatinskiy@chromium.org,jgruber@chromium.org Change-Id: I9b52354fa0841e5148596cf594317f2e5fe508ea No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:778796 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Reviewed-on: https://chromium-review.googlesource.com/786152Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#49584}
-
Alexey Kozyatinskiy authored
Sometimes we need to capture stack trace on one debugger and use it later as a parent stack on another debugger (e.g. worker.postMessage). This CL includes following addition to our protocol and v8-inspector.h: - added Runtime.StackTraceId, this id represents stack trace captured on debugger with given id, - protocol client can fetch Runtime.StackTrace by Runtime.StacKTraceId using Debugger.getStackTrace method, - externalParent field is added to Debugger.paused event, it may contain external parent stack trace, - V8Inspector::storeCurrentStackTrace captures current stack trace and returns V8StackTraceId for embedder this id can be used as argument for V8Inspector::externalAsyncTaskStarted and V8Inspector::externalAsyncTaskFinished method. Any async stack trace captured between these calls will get passed external stack trace as external parent. These methods are designed to be called on different debuggers. If async task is scheduled and started on one debugger user should continue to use asyncTask* API, - Debugger.enable methods returns unique debuggerId. Bug: chromium:778796 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I16aba0d04bfcea90f3e187e635a0588c92354539 Reviewed-on: https://chromium-review.googlesource.com/754183Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#49582}
-
- 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}
-
- 14 Nov, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
Otherwise we can end up with performance regression with a lot of frames in cache. Map requires log(N) for lookup, unordered map for frames ids requires - ~O(1). R=dgozman@chromium.org Bug: v8:7078 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: Iac1ff7e35daede8c5ebd424f686a8ef8dbae9061 Reviewed-on: https://chromium-review.googlesource.com/767035 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#49369}
-
- 06 Nov, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
It is preparation step for step-into-worker. There are few changes: - added breakOnAsyncCall flag for Debugger.stepInto. When flag is set and async task is scheduled before step-into finished, we pause execution with additional Debugger.paused event. This event contains additional scheduledAsyncTaskId field. - added Debugger.pauseOnAsyncTask. This method will pause execution as soon as given async task is started. This mechanism is replacement for Debugger.scheduleStepIntoAsync which can not be used between multiple targets. As result we can split async task scheduling in one target and requesting break for this async task running in another target. R=pfeldman@chromium.org Bug: chromium:778796 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I77be0c880d91253d333c54a23a4c084e7b8549e9 Reviewed-on: https://chromium-review.googlesource.com/750071Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Pavel Feldman <pfeldman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#49127}
-
- 06 Oct, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
This split is required for adding scriptHash argument. R=dgozman@chromium.org TBR=machenbach@chromium.org Bug: chromium:459499 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I0266cd22be4053829af47ba445e0ddfb6b726e71 Reviewed-on: https://chromium-review.googlesource.com/703863 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#48355}
-
- 23 Aug, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
- simplify prototype traversal. - use V8InspectorClient::isInspectableHeapObject since some embedders on JavaScript heap contains not inspectable objects, e.g. wrapper boilerplates in blink. - Runtime.queryObjects takes prototype object as argument for more flexibility. R=alph@chromium.org Bug: v8:6732 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I06f0d5c987150c80c3e9b05e7f6ad195985fc539 Reviewed-on: https://chromium-review.googlesource.com/627577 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47559}
-
- 21 Aug, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
Runtime.queryObjects method: 1. force gc, 2. iterate through heap and get all objects with passed constructorName or with passed constructor name in prototype chain, 3. return these objects as JSArray. Main use case is regression tests for memory leaks. R=pfeldman@chromium.org,alph@chromium.org,ulan@chromium.org Bug: v8:6732 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I52f0803366f14bb24376653615d870a4f21f83e7 Reviewed-on: https://chromium-review.googlesource.com/619594Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Alexei Filippov <alph@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Pavel Feldman <pfeldman@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47478}
-
- 02 Aug, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
My goal was to move breakpoint API to native with minimal changes around, so on inspector side we use v8::debug::BreakpointId instead of String16, on v8::internal::Debug we use i::BreakPoint object instead of break point object created inside of debug.js. There are a lot of opportunities how we can improve breakpoints (at least we can avoid some of linear lookups to speedup implementation) but I think that as first step we need to remove mirrors/debug.js APIs. Drive by: debugger-script.js and usage of debugger context in inspector code base. R=yangguo@chromium.org,jgruber@chromium.org,clemensh@chromium.org Bug: v8:5510,chromium:652939 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I0b17972c39053dd4989bbe26db2bb0b88ca378f7 Reviewed-on: https://chromium-review.googlesource.com/593156Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47091}
-
- 31 Jul, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
This call from inspector side is redundant, V8 will clear all breakpoints on removing debug delegate in v8::internal::Debug::Unload method. In any case for correct support of multiclient we need to clear breakpoints in V8DebuggerAgentImpl::disable method. R=dgozman@chromium.org Bug: v8:5510,chromium:652939 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I66f9b97797860bad28884a099928d54ac3560428 Reviewed-on: https://chromium-review.googlesource.com/592281 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#47022}
-
- 28 Jul, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
To avoid using debugging context and debugger-script.js on inspector side we can move SetScriptSource call to v8::internal::Debug. Theoretically we can move live edit implementation to native completely but since it will be reimplemented it looks redundant. R=yangguo@chromium.org,jgruber@chromium.org Bug: chromium:652939 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Id09492c2d2a93efbde429c9cc1bc181d5fdda19b Reviewed-on: https://chromium-review.googlesource.com/590736 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46985}
-
- 27 Jul, 2017 1 commit
-
-
Alexey Kozyatinskiy authored
This CL moves us much closer to the point where we can remove debugger-script.js and usage of debugger context from inspector. There are three main parts left: - managing breakpoints, - inspecting stack and scopes (this CL), - LiveEdit. In this CL I moved all stack/scope inspection to native. As side effect running debugger and inspector tests are 10-20% faster (it's significant since not all of tests requesting break). R=yangguo@chromium.org,jgruber@chromium.org Bug: chromium:652939 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I409396a687e18e9c0554c0c9c35b6e1064627be8 Reviewed-on: https://chromium-review.googlesource.com/580645Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46947}
-
- 07 Jun, 2017 1 commit
-
-
dgozman authored
... as opposite to a global per-isolate one. Also streamlined multiple checks into a single acceptsPause() method. BUG=chromium:590878 Review-Url: https://codereview.chromium.org/2925903002 Cr-Commit-Position: refs/heads/master@{#45749}
-
- 06 Jun, 2017 1 commit
-
-
dgozman authored
... when trying to resume or step. BUG=none Review-Url: https://codereview.chromium.org/2923243002 Cr-Commit-Position: refs/heads/master@{#45747}
-
- 05 Jun, 2017 1 commit
-
-
dgozman authored
Instead of going through debugger agent, this patch implements console.assert pause similar to debugger statement and OOM break. New test uncovered a bug, where pause on exceptions state mix up between different context groups. Added a TODO to fix it. BUG=chromium:590878 Review-Url: https://codereview.chromium.org/2916363002 Cr-Commit-Position: refs/heads/master@{#45711}
-
- 01 Jun, 2017 1 commit
-
-
dgozman authored
This patch adds ability to connect multiple sessions to a single context group. This is an experimental feature, which is already supported in test harness. So far covered runtime domain with tests (and found a bug thanks to the test). More tests to follow in next patches, probably with code adjustments as well. BUG=chromium:590878 Review-Url: https://codereview.chromium.org/2906153002 Cr-Commit-Position: refs/heads/master@{#45667}
-
- 16 May, 2017 2 commits
-
-
kozyatinskiy authored
By default we just break when we first time reach passed location, with current - we'll break at passed location only when it happens within the same stack frame. BUG=v8:6397 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2879923003 Cr-Commit-Position: refs/heads/master@{#45354}
-
kozyatinskiy authored
So continue to location can be called only for one context group id at the same time. BUG=v8:6397 Review-Url: https://codereview.chromium.org/2882213004 Cr-Commit-Position: refs/heads/master@{#45349}
-
- 25 Apr, 2017 2 commits
-
-
kozyatinskiy authored
We should be ready for gone agent. BUG=chromium:714819 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2842903002 Cr-Commit-Position: refs/heads/master@{#44874}
-
kozyatinskiy authored
- introduced pausedContextGroupId, - added targetContextGroupId param for V8Debugger::continueProgram method. BUG=chromium:714955 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2842733002 Cr-Commit-Position: refs/heads/master@{#44871}
-
- 20 Apr, 2017 2 commits
-
-
kozyatinskiy authored
BUG=v8:6189 R=dgozman@chromium.org Review-Url: https://codereview.chromium.org/2826183002 Cr-Commit-Position: refs/heads/master@{#44755}
-
kozyatinskiy authored
Since we already have cache on V8 side we can introduce caching on inspector side. It will decrease memory consumption and reduce time which we spend for collecting stacks. See [1] for details. [1] https://docs.google.com/a/google.com/document/d/13H1Pn6dekcwqlaYP26CfyyYGuL-U9LtUPWmt3TIpOag/edit?usp=sharing BUG=v8:6189 R=dgozman@chromium.org,yangguo@chromium.org Review-Url: https://codereview.chromium.org/2825903002 Cr-Commit-Position: refs/heads/master@{#44753}
-