- 20 May, 2021 1 commit
-
-
Andreas Haas authored
With this CL, V8 adds an internal field to the WebAssembly Table object that is sent to DevTools to also show table entries. As WebAssembly Tables get initialized lazily, V8 only shows the name of the function instead of the function object itself. Screenshot before change: https://imgur.com/a/XFvy3lA Screenshot after change: https://imgur.com/kT84kst R=kimanh@chromium.org Change-Id: I56a0b07785ff3484f1447419fe39ae5ec3f93247 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2897097Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#74690}
-
- 09 Apr, 2021 1 commit
-
-
Benedikt Meurer authored
These tests unnecessarily rely on the `//# sourceURL` annotation. This is preparatory work to eventually move the treatment of `sourceURL` to the DevTools front-end. Bug: chromium:1183990 Change-Id: I934eb1580f503b7b9f8d97c250b7c798bc67e268 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2814568 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#73878}
-
- 17 Mar, 2021 1 commit
-
-
Andreas Haas authored
The original CL was reverted because PC authentication was missing for the `caller_pc` in the stack walk. This caused a crash on the CFI bot. PS1 is the original CL, later patch sets contain the fix. Original Message: [wasm] Emit safepoint info for callee-saved registers in the deopt-index Encode safepoint info of callee-saved registers in the deopt index of the normal safepoint. R=clemensb@chromium.org, jkummerow@chromium.org Change-Id: I633cd715eccc697e888cd381e3bda1a47d0d0851 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759520Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Commit-Queue: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#73464}
-
- 15 Mar, 2021 2 commits
-
-
Clemens Backes authored
This reverts commit 74960db4. Reason for revert: Segfaults on CFI: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20CFI/4999/overview Original change's description: > [wasm] Emit safepoint info for callee-saved registers in the deopt-index > > Encode safepoint info of callee-saved registers in the deopt index of > the normal safepoint. > > Change-Id: I93bd0d2330b7f592b767860743c04a65ddaa92f5 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739977 > Commit-Queue: Andreas Haas <ahaas@chromium.org> > Reviewed-by: Clemens Backes <clemensb@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Cr-Commit-Position: refs/heads/master@{#73395} Change-Id: Ic4803b06a64b615f2258c594b601b4e8fd4b7bff No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2759513 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#73396}
-
Andreas Haas authored
Encode safepoint info of callee-saved registers in the deopt index of the normal safepoint. Change-Id: I93bd0d2330b7f592b767860743c04a65ddaa92f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2739977 Commit-Queue: Andreas Haas <ahaas@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#73395}
-
- 05 Mar, 2021 1 commit
-
-
Jakob Kummerow authored
This adds support for WasmGC objects (structs/arrays) to the inspector backend. For prettier printing, it also adds support for reading the "type" and "field" subsections of the "name" section in Wasm modules. This patch includes a revert of most of commit crrev.com/987a7f4a because types are more complicated now. Bug: v8:7748, chromium:1177784 Change-Id: Icec52cbbb32291b0e773b40be6771a678c6ec79b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2715193 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#73212}
-
- 12 Feb, 2021 1 commit
-
-
Clemens Backes authored
This CL adds support for instrumentation breakpoints in wasm. The request for "break on entry" is set on the script, and we need to keep it stored there because there might not be any instances of that wasm module yet. Once instances get created, the flag value is transferred to all instances. The flag stored there is then checked in the function prologue in Liftoff debugging code. This ensures that we will stop at the first valid break position in any function within that module. Hitting that instrumentation breakpoint will then clear the flag from the script and from all other live instances (in the same isolate). A first basic test is contained in this CL. More tests will be added later. R=thibaudm@chromium.org, bmeurer@chromium.org Bug: chromium:1151211 Change-Id: I5442d4044934988269becececc03699b850d51d7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2690588Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#72701}
-
- 09 Feb, 2021 1 commit
-
-
Benedikt Meurer authored
BREAKING CHANGE: The values of Wasm locals, stack, and globals are now represented as objects instead of holding the (primitive) values directly, and SIMD128 values are no longer represented as Uint8Arrays. The DWARF extension has been prepared for this breaking change. The new `WasmValue` comes with `type` and `value` properties that hold its contents. The motivation here is that this is a more extensible approach. In case of SIMD128, the `value` property holds the canonical string representation, which has the additional advantage that these values can be compared with `===` (and `==`). This partially reverts https://crrev.com/c/2614428, the main difference here being that WasmValue is now a proper JSObject that can be exposed on the DebugEvaluate proxy API. Screenshot: https://imgur.com/rcahNKM.png Bug: chromium:1170282, chromium:1071432, chromium:1159402 Change-Id: Iea304e3680775123c41deb4c3d172ac949da1b98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2643384Reviewed-by: Philip Pfaffe <pfaffe@chromium.org> Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72570}
-
- 12 Jan, 2021 1 commit
-
-
Benedikt Meurer authored
This adds the following internal properties to `WasmInstanceObject` values in DevTools: - `[[Module]]` pointing to the `WasmModuleObject`, allowing the developer to find the module to an instance no matter where in DevTools front-end the instance is inspected. - `[[Functions]]`, `[[Globals]]`, `[[Memories]]`, and `[[Tables]]` are shown (when they aren't empty), allowing developers to inspect the entities within an instance no matter where in DevTools front-end it's inspected. This also updates the _Module_ scope for Wasm frames to show the entity containers (`functions`, `globals`, `memories` and `tables`) in addition to the `instance` and `module` to make it easier accessible (fewer clicks to get there), but also to align it better with the _Add property path to Watch_ and _Copy property path_ features (since exactly the same names are exposed via Debug Evaluate on Wasm frames). ``` > Stack > Locals v Module > module > instance > functions > globals > memories > tables ``` Drive-by-fix: Move GetWasmModuleObjectInternalProperties() logic into debug-wasm-support.cc Screenshot: https://imgur.com/ksEHG2I.png Doc: http://bit.ly/devtools-wasm-entities Fixed: chromium:1165294 Bug: chromium:1071432, chromium:1164241, chromium:1165304 Change-Id: Ia88fb2705287c79988ff2b432e4a33ac34e098f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2622912Reviewed-by: Philip Pfaffe <pfaffe@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#72042}
-
- 08 Jan, 2021 1 commit
-
-
Benedikt Meurer authored
Previously we had introduced a special `v8::internal::WasmValue` type which we used to expose Wasm values to the Scope view in Chromium DevTools. The problem however is that these values cannot be exposed to JavaScript (and in particular not to Debug Evaluate), which means that particularly for v128 and i64 we have inconsistent representations across the various parts of DevTools. This change removes the `wasm` type from the RemoteObject and all the adjacent logic, and paves the way for a uniform representation of Wasm values throughout DevTools. For i64 we will simply use BigInt consistently everywhere, and for i32, f32 and f64 we'll just use Number. For externref we will represent the values as-is directly. For v128 values we currently use a Uint8Array, but will introduce a dedicated WasmSimd128 class in a follow-up CL. Bug: chromium:1071432 Fixed: chromium:1159402 Change-Id: I0671e5736c9c27d7ca376e23ed74f16d36e03c80 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2614428Reviewed-by: Zhi An Ng <zhin@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71962}
-
- 29 Dec, 2020 1 commit
-
-
Benedikt Meurer authored
The "imports" and "exports" that were exposed on WebAssembly frames via Debug-Evaluate aren't useful for the DWARF C/C++ extension (and likely not for any other language extension), since they only expose static information that's easily available (upfront) by reading the Wasm wire bytes. In fact, there are already standardized functions in the WebAssembly specification, namely `WebAssembly.Module.imports(module)` and `WebAssembly.Module.exports(module)`, which yield static information about the imports and exports of a Wasm module. So instead of exposing special, non-standard "imports" and "exports", we now instead expose both the "instance" and the "module" objects via both the Debug Proxy and the Scope view, and also add internal [[Exports]] and [[Imports]] properties to WasmModuleObject, which under the hood use the standard methods mentioned above. Fixed: chromium:1162069 Bug: chromium:1071432, chromium:1083146 Screenshot: https://imgur.com/lcaW2jL.png Doc: https://docs.google.com/document/d/1rqbu0jKTl3q_xCxLnKzkjGXWEsHnJ9aERVhKV9RNDgE#bookmark=id.925bb2qgou38 Change-Id: Ie27e55bb08ea5f90493c57375bf2b48dfb11a4d2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2606050 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#71893}
-
- 07 Dec, 2020 1 commit
-
-
Benedikt Meurer authored
Previously V8 would wrap the WebAssembly.Memory backing stores into Uint8Arrays and report that as memories, but that's confusing to the developer, since that's not what's really being used. The way that DevTools presents the backing stores of memories, it's still perfectly possible to get hold of an Uint8Array if that's what the developer is looking for. To make it possible to easily identify the WebAssembly.Memory objects in the DevTools front-end (in particular for the memory inspector) we add a 'webassemblymemory' subtype to the Chrome DevTools Protocol. We also improve the description for the memories to include the number of active pages. Fixed: chromium:1155566 Screenshot: https://imgur.com/8enx57u.png Change-Id: I63dbabe0e372e9ad6dcc8e6642cdb743147a620c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2574699Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#71641}
-
- 26 Nov, 2020 1 commit
-
-
Clemens Backes authored
This specific case was not implemented or tested before. Implementing it actually simplifies some of the existing logic, since StepOut can now reuse the generic logic in debug.cc for all cases (Wasm->Wasm, Wasm->JS, JS->Wasm). Drive-by: 1) Fix typo ("skip" -> "step"). 2) Move the check for Liftoff code from debug.cc to wasm-debug.cc, where it fits better. 3) Remove a TODO which is done already. R=thibaudm@chromium.org, szuend@chromium.org Bug: chromium:1145176 Change-Id: I415ca1d8bacef5b21bf1dafd9e16417ec2d12c7c Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2560719 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Reviewed-by: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#71428}
-
- 25 Nov, 2020 1 commit
-
-
Clemens Backes authored
Function tables have been removed from the scope object in https://crrev.com/c/2507696, hence the code for printing them is dead now. R=bmeurer@chromium.org Change-Id: Ib36fb314ae54468239737f100a6594d8d2031218 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2557982Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#71412}
-
- 16 Oct, 2020 1 commit
-
-
Clemens Backes authored
It makes inspector tests a lot more readable if the opcode of the pause location is being printed. Since we already have a list of all opcodes available in wasm-module-builder.js, we can just reuse that to build a reverse lookup map. This CL implements this for single-byte opcodes only, which is enough for all tests that we currently have. It will have to be extended for prefixed opcodes once that is being used. R=thibaudm@chromium.org, kimanh@chromium.org Change-Id: I085fea99d2f5f2dc6cc084448e5f7444cce5c78b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2474789 Commit-Queue: Clemens Backes <clemensb@chromium.org> Reviewed-by: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Thibaud Michaud <thibaudm@chromium.org> Cr-Commit-Position: refs/heads/master@{#70578}
-
- 16 Jun, 2020 1 commit
-
-
Kim-Anh Tran authored
Extract commonly used instantiate() and evalWithUrl() functions. Bug: chromium:1093165 Change-Id: I14f8b49d556bc70d2092a80b41c5bbf678efd1a9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2245599 Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#68356}
-
- 10 Jun, 2020 1 commit
-
-
Kim-Anh Tran authored
Pulling out common functionality related to dumping scope properties. Bug: chromium:1093165 Change-Id: I7de377b8812b6181bac21fc0d90c416568b0d640 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2237126 Commit-Queue: Kim-Anh Tran <kimanh@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#68277}
-