- 14 Sep, 2020 1 commit
-
-
Hidehiko Abe authored
Currently is_linux GN variable is set to true on building Chrome OS but it is planned to be set false. This CL is the preparation to keep the compatibility. Bug: chromium:1110266 Test: Built locally. Change-Id: Ibb9a57269f5a147e372fd33a473d9514379e1c68 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2405847Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#69870}
-
- 31 Aug, 2020 1 commit
-
-
Jake Hughes authored
With conservative stack scanning enabled, a snapshot of the call stack upon entry to GC will be used to determine part of the root-set. When the collector walks the stack, it looks at each value and determines whether it could be a potential on-heap object pointer. However, unlike with Handles, these on-stack pointers aren't guaranteed to point to the start of the object: the compiler may decide hide these pointers, and create interior pointers in C++ frames which the GC doesn't know about. The solution to this is to include an object start bitmap in the header of each page. Each bit in the bitmap represents a word in the page payload which is set when an object is allocated. This means that when the collector finds an arbitrary potential pointer into the page, it can walk backwards through the bitmap until it finds the relevant object's base pointer. To prevent the bitmap becoming stale after compaction, it is rebuilt during object sweeping. This is experimental, and currently only works with inline allocation disabled, and single generational collection. Bug: v8:10614 Change-Id: I28ebd9562f58f335f8b3c2d1189cdf39feaa1f52 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2375195 Commit-Queue: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Dominik Inführ <dinfuehr@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Cr-Commit-Position: refs/heads/master@{#69615}
-
- 02 Jul, 2020 1 commit
-
-
Michael Lippautz authored
This adds Google benchmark for microbenchmarking C++ code as an optional dependency. To enable, add the following to the .gclient before syncing "custom_vars": { "checkout_google_benchmark": True } Change-Id: Id0eab772dd71558906658ef4bb60e31acd665948 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2275964Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Anton Bikineev <bikineev@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#68663}
-
- 03 Jun, 2020 1 commit
-
-
Peter Ralbovsky authored
Fuzzilli is open source fuzzer by Samuel Groß (saelo@google.com) that can be used to find bugs in v8 javascript engine. As we want to automate fuzzing for current versions of v8, we want to merge fuzzilli toolkit into v8 code, so that fuzzer can automatically update to the newest version. So far Fuzzilli has been maintained at https://github.com/googleprojectzero/fuzzilli . Bug tracker Id: https://bugs.chromium.org/p/v8/issues/detail?id=10571 Change-Id: I83ddc7e8bb31664c19e4044395bb9044a1c12031 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2201760Reviewed-by: Tamer Tas <tmrts@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#68132}
-
- 11 May, 2020 1 commit
-
-
Sami Kyostila authored
We are currently porting Chromium over to use the Perfetto client library for tracing[1]. When this mode is enabled, V8 should also use the Perfetto library built by Chromium instead of building an indepedendent copy. This patch enables that behavior, gated by the |use_perfetto_client_library| flag set by Chromium. We also roll Perfetto to the latest version, add a couple of missing dependencies on v8_tracing and add a missing tracing category group. [1] https://docs.google.com/document/d/1f7tt4cb-JcA5bQFR1oXk60ncJPpkL02_Hi_Bc6MfTQk/ (Internal) Bug: 155075662 Change-Id: I76d9626b1c83cb7a278dc3281b3a1db653ab8733 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2182637Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Commit-Queue: Sami Kyöstilä <skyostil@chromium.org> Cr-Commit-Position: refs/heads/master@{#67706}
-
- 17 Apr, 2020 1 commit
-
-
Sami Kyostila authored
This patch replaces V8's tracing implementation (i.e., the TRACE_EVENT macros) with the track event base implementation from Perfetto. The advantages of doing this are: 1) This allows us to remove most tracing-related backend code from V8. 2) V8 can start writing strongly typed trace event arguments, which are more compact, easier to process and more extensible than legacy JSON-based trace arguments. For the time being, we still support the old trace macros when V8 is embedded into Chrome and other embedders. Design doc: https://docs.google.com/document/d/1f7tt4cb-JcA5bQFR1oXk60ncJPpkL02_Hi_Bc6MfTQk/edit#heading=h.398p6b4eaen2 Bug: chromium:1006766 Change-Id: Ie71474fbe065821772b13d851487ebbca680c4ae Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1947688 Commit-Queue: Sami Kyöstilä <skyostil@chromium.org> Auto-Submit: Sami Kyöstilä <skyostil@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#67217}
-
- 09 Mar, 2020 1 commit
-
-
Jakob Kummerow authored
Considering that the security benefit is unclear at this point, the performance and binary size costs are not justified. This CL includes reverts of earlier partial disablings: 173a2bd8 af7bf14f 85f72be3 Bug: chromium:977230, chromium:1055312, chromium:1055317 Change-Id: I173b61656a542687c4619fa374a0b2ee22c85ef7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2091474Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Hablich <hablich@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#66623}
-
- 04 Mar, 2020 1 commit
-
-
Sami Kyostila authored
This patch rolls v8 to the latest Perfetto revision. Since Perfetto has changed the way the GN protobuf integration works, we need to make some corresponding changes in V8. Bug: chromium:639003 Change-Id: I263c591560503c9779bbab3ec266cfb2708fc51f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2085175Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Auto-Submit: Sami Kyöstilä <skyostil@chromium.org> Cr-Commit-Position: refs/heads/master@{#66583}
-
- 20 Feb, 2020 1 commit
-
-
Paolo Severini authored
This is the first piece of the wasm debugging prototype (besides the changes to add/remove breakpoints in WasmModuleObject made with https://chromium.googlesource.com/v8/v8.git/+/e699f39caed9a23f8e20bd3a0386a3236e272737). This changelist adds the infrastructure for a GDB-remote stub that will be used to manage debugging sessions via the gdb-remote protocol. It enables the creation and termination of debugging sessions over TCP connections that are managed in a separate thread. The logic to actually send, receive and decode GDB-remote packets will be part of a future changelist. Build with: v8_enable_wasm_gdb_remote_debugging = true Run with: --wasm-gdb-remote Enables Wasm debugging with LLDB (default: false) --wasm-gdb-remote-port TCP port to be used for debugging (default: 8765) --wasm-pause-waiting-for-debugger Pauses the execution of Wasm code waiting for a debugger (default: false) --trace-wasm-gdb-remote Enables tracing of Gdb-remote packets (default: false) Note that most of this code is "borrowed" from the code of the Chromium NaCL GDB-remote stub (located in Chromium in src\native_client\src\trusted\debug_stub). Implementation details: - class GdbServer acts as a singleton manager for the gdb-remote stub. It is instantiated as soon as the first Wasm module is loaded in the Wasm engine. - class GdbServerThread spawns the worker thread for the TCP connection. - class Transport manages the socket connection, in a portable way. - class Session represents a remote debugging session. - class Target represents a debugging target and it’s the place where the debugging packets will be processed and will implement the logic to debug a Wasm engine. Bug: chromium:1010467 Change-Id: Ib2324e5901f5ae1d855b96b99ef0995d407322b6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1923407Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Paolo Severini <paolosev@microsoft.com> Cr-Commit-Position: refs/heads/master@{#66379}
-
- 18 Feb, 2020 1 commit
-
-
Seth Brenith authored
Please take a look at tools/v8windbg/README.md for an overview of what v8windbg can do and how it's structured. This platform-specific debugging plugin makes use of the data provided by the V8 postmortem debugging API in tools/debug_helper. Note: This code began as https://github.com/billti/v8dbg and then moved into the Edge repository, where I added features gradually and got code reviews for individual changes. Now, taken in its entirety, it's an obnoxiously large CL. I'm open to breaking it up into a few chunks if that would be preferable. Bug: v8:9376 Change-Id: I3e503de00bb1aea870ae83e9bd99e4e2eab9ef98 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2031700Reviewed-by: Michael Stanton <mvstanton@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#66319}
-
- 13 Feb, 2020 1 commit
-
-
Pengyu Chen authored
May override the global symbol_level config. Useful for debugging V8 within a release Chromium, like v8_enable_debugging_features. Change-Id: Ie081b5110dc93914cbe53fdde3cdec77822b9819 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2051959 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#66262}
-
- 18 Dec, 2019 1 commit
-
-
Sigurd Schneider authored
This CL adds an argument to the heap profiler that allows to control whether global objects (e.g. 'window' in JavaScript) are treated as roots in the heap snapshot. Doing so hides blink-internal details and is often a good choice when user-JS leaks are investigated. Sometimes, however, this introduces spurious retainer cycles, which are hard to debug. Previously, this option was exposed as a V8 flag. The blink implications of the build-time V8 flag are now available via the new blink flag `enable_additional_blink_object_names`. Tbr: hpayer@chromium.org Bug: chromium:1034504 Change-Id: Ibe9412917ae598a3ff0c3dc956ab0bc179f50a21 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1967387Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#65491}
-
- 04 Nov, 2019 1 commit
-
-
Michael Achenbach authored
We'll remove the file from Chromium in a follow up after V8 has rolled + 2 days. Bug: v8:9911 Change-Id: I69fe56855f1ba83bec0d39e0fb6acb7e4182c6b7 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1897826Reviewed-by: Nico Weber <thakis@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#64742}
-
- 31 Oct, 2019 1 commit
-
-
Michael Achenbach authored
Bug: chromium:994387 Change-Id: I7b37a416ce6cc79903fe04923e86af1d0065ac37 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1890090Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#64669}
-
- 29 Oct, 2019 1 commit
-
-
Michael Achenbach authored
The targets were removed in: https://crrev.com/c/1865420 Bug: v8:9911 Change-Id: I3fef2af6f8c1975a4b540965c72eaf7f69f4c78e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1883893 Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#64606}
-
- 16 Oct, 2019 1 commit
-
-
Simon Zünd authored
This is a reland of 1c56974f This is a plain reland of the original CL. The original CL was speculatively reverted, but ended up not being the cause for bot failures. Original change's description: > Unconditionally enable snapshot builds and remove 'v8_use_snapshot' > > This CL removes 'v8_use_snapshot' and the usages of the implied > V8_USE_SNAPSHOT define. One test runner unittest was updated to use the > "asan" variant instead of the now obsolete "no_snap" variant. > > Related chromium CL: https://crrev.com/c/1796325. > > Bug: v8:8531 > Change-Id: I5da7c9f8e9110fe7bc0f4e4f821bcb7f7d98f927 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784282 > Commit-Queue: Simon Zünd <szuend@chromium.org> > Reviewed-by: Tamer Tas <tmrts@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64290} TBR=thakis@chromium.org,machenbach@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,tmrts@chromium.org,szuend@chromium.org Bug: v8:8531 Change-Id: Id75a802279238138f7aefec62e0b6425a5acc08d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1864649Reviewed-by: Simon Zünd <szuend@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Commit-Queue: Simon Zünd <szuend@chromium.org> Cr-Commit-Position: refs/heads/master@{#64305}
-
- 15 Oct, 2019 2 commits
-
-
Clemens Backes authored
This reverts commit 1c56974f. Reason for revert: Causes several bots to timeout, e.g. https://ci.chromium.org/p/v8/builders/ci/V8%20Linux%20-%20debug/27945 Original change's description: > Unconditionally enable snapshot builds and remove 'v8_use_snapshot' > > This CL removes 'v8_use_snapshot' and the usages of the implied > V8_USE_SNAPSHOT define. One test runner unittest was updated to use the > "asan" variant instead of the now obsolete "no_snap" variant. > > Related chromium CL: https://crrev.com/c/1796325. > > Bug: v8:8531 > Change-Id: I5da7c9f8e9110fe7bc0f4e4f821bcb7f7d98f927 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784282 > Commit-Queue: Simon Zünd <szuend@chromium.org> > Reviewed-by: Tamer Tas <tmrts@chromium.org> > Reviewed-by: Michael Achenbach <machenbach@chromium.org> > Reviewed-by: Nico Weber <thakis@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#64290} TBR=thakis@chromium.org,machenbach@chromium.org,mstarzinger@chromium.org,jgruber@chromium.org,tmrts@chromium.org,szuend@chromium.org Change-Id: I4024d818877e534b9f7908a2d14f33dca35b5924 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8531 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1862572Reviewed-by: Clemens Backes <clemensb@chromium.org> Commit-Queue: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#64293}
-
Simon Zünd authored
This CL removes 'v8_use_snapshot' and the usages of the implied V8_USE_SNAPSHOT define. One test runner unittest was updated to use the "asan" variant instead of the now obsolete "no_snap" variant. Related chromium CL: https://crrev.com/c/1796325. Bug: v8:8531 Change-Id: I5da7c9f8e9110fe7bc0f4e4f821bcb7f7d98f927 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1784282 Commit-Queue: Simon Zünd <szuend@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Nico Weber <thakis@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#64290}
-
- 07 Oct, 2019 1 commit
-
-
Hans Wennborg authored
It was disabled because it didn't use to work, but it does now, see bugs. Bug: chromium:803591, v8:9736 Change-Id: I53a04199f001b436bd5a247b51cd7c25e3a6e990 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1844776 Commit-Queue: Hans Wennborg <hans@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Auto-Submit: Hans Wennborg <hans@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#64138}
-
- 20 Sep, 2019 1 commit
-
-
Seth Brenith authored
If we can read an object's Map pointer but not any data from the Map itself, we may still be able to accurately describe the object's type if the Map pointer matches one of the known Maps from the snapshot. GetObjectProperties uses that data in one of two ways: - If it is sure that the Map pointer matches a known Map, then it uses the type from that Map and continues as if it read the type normally. - If the Map pointer is at the right offset within a heap page to match a known Map, but the caller didn't provide the addresses of the first pages in Map space or read-only space, then the type of that Map is just a guess and gets returned in a separate array. This gives the caller the opportunity to present guessed types to the user, and perhaps call again using the guessed type as the type hint. Bug: v8:9376 Change-Id: I187f67b77e76699863a14534a9d635b79f654124 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1787986 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Cr-Commit-Position: refs/heads/master@{#63908}
-
- 12 Aug, 2019 1 commit
-
-
Yang Guo authored
R=machenbach@chromium.org Bug: chromium:992584 Change-Id: I301013731a502689f2edd5c90e5e7bf2136198c5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1745337Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#63159}
-
- 31 Jul, 2019 1 commit
-
-
Seth Brenith authored
This is a reland of 517ab73f Updates since original: now compressed pointers passed to the function GetObjectProperties are required to be sign-extended. Previously, the function allowed zero-extended values, but that led to ambiguity on pointers like 0x88044919: is it compressed or is the heap range actually centered on 0x100000000? Original change's description: > Add postmortem debugging helper library > > This change begins to implement the functionality described in > https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit# > for investigating V8 state in crash dumps. > > This change adds a new library, v8_debug_helper, for providing platform- > agnostic assistance with postmortem debugging. This library can be used > by extensions built for debuggers such as WinDbg or lldb. Its public API > is described by debug-helper.h; currently the only method it exposes is > GetObjectProperties, but we'd like to add more functionality over time. > The API surface is restricted to plain C-style structs and pointers, so > that it's easy to link from a debugger extension built with a different > toolchain. > > This change also adds a new cctest file to exercise some basic > interaction with the new library. > > The API function GetObjectProperties takes an object pointer (which > could be compressed, or weak, or a SMI), and returns a string > description of the object and a list of properties the object contains. > For now, the list of properties is entirely based on Torque object > definitions, but we expect to add custom properties in future updates so > that it can be easier to make sense of complex data structures such as > dictionaries. > > GetObjectProperties does several things that are intended to generate > somewhat useful results even in cases where memory may be corrupt or > unavailable: > - The caller may optionally provide a type string which will be used if > the memory for the object's Map is inaccessible. > - All object pointers are compared against the list of known objects > generated by mkgrokdump. The caller may optionally provide the > pointers for the first pages of various heap spaces, to avoid spurious > matches. If those pointers are not provided, then any matches are > prefixed with "maybe" in the resulting description string, such as > "maybe UndefinedValue (0x4288000341 <Oddball>)". > > Bug: v8:9376 > > Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62882} Bug: v8:9376 Change-Id: I866a1cc9d4c34bfe10c7b98462451fe69763cf3f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1717090Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Cr-Commit-Position: refs/heads/master@{#63008}
-
- 24 Jul, 2019 1 commit
-
-
Zhi An Ng authored
This reverts commit 517ab73f. Reason for revert: Test failures https://bugs.chromium.org/p/v8/issues/detail?id=9538 Original change's description: > Add postmortem debugging helper library > > This change begins to implement the functionality described in > https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit# > for investigating V8 state in crash dumps. > > This change adds a new library, v8_debug_helper, for providing platform- > agnostic assistance with postmortem debugging. This library can be used > by extensions built for debuggers such as WinDbg or lldb. Its public API > is described by debug-helper.h; currently the only method it exposes is > GetObjectProperties, but we'd like to add more functionality over time. > The API surface is restricted to plain C-style structs and pointers, so > that it's easy to link from a debugger extension built with a different > toolchain. > > This change also adds a new cctest file to exercise some basic > interaction with the new library. > > The API function GetObjectProperties takes an object pointer (which > could be compressed, or weak, or a SMI), and returns a string > description of the object and a list of properties the object contains. > For now, the list of properties is entirely based on Torque object > definitions, but we expect to add custom properties in future updates so > that it can be easier to make sense of complex data structures such as > dictionaries. > > GetObjectProperties does several things that are intended to generate > somewhat useful results even in cases where memory may be corrupt or > unavailable: > - The caller may optionally provide a type string which will be used if > the memory for the object's Map is inaccessible. > - All object pointers are compared against the list of known objects > generated by mkgrokdump. The caller may optionally provide the > pointers for the first pages of various heap spaces, to avoid spurious > matches. If those pointers are not provided, then any matches are > prefixed with "maybe" in the resulting description string, such as > "maybe UndefinedValue (0x4288000341 <Oddball>)". > > Bug: v8:9376 > > Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012 > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Reviewed-by: Michael Stanton <mvstanton@chromium.org> > Cr-Commit-Position: refs/heads/master@{#62882} TBR=yangguo@chromium.org,mvstanton@chromium.org,jgruber@chromium.org,tebbi@chromium.org,seth.brenith@microsoft.com Change-Id: Ia078f2e8d101d2375b5db88021b2d65d28f1b075 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:9376 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1716033Reviewed-by: Leszek Swirski <leszeks@chromium.org> Commit-Queue: Zhi An Ng <zhin@chromium.org> Cr-Commit-Position: refs/heads/master@{#62899}
-
- 23 Jul, 2019 1 commit
-
-
Seth Brenith authored
This change begins to implement the functionality described in https://docs.google.com/document/d/1evHnb1uLlSbvHAAsmOXyc25x3uh1DjgNa8u1RHvwVhk/edit# for investigating V8 state in crash dumps. This change adds a new library, v8_debug_helper, for providing platform- agnostic assistance with postmortem debugging. This library can be used by extensions built for debuggers such as WinDbg or lldb. Its public API is described by debug-helper.h; currently the only method it exposes is GetObjectProperties, but we'd like to add more functionality over time. The API surface is restricted to plain C-style structs and pointers, so that it's easy to link from a debugger extension built with a different toolchain. This change also adds a new cctest file to exercise some basic interaction with the new library. The API function GetObjectProperties takes an object pointer (which could be compressed, or weak, or a SMI), and returns a string description of the object and a list of properties the object contains. For now, the list of properties is entirely based on Torque object definitions, but we expect to add custom properties in future updates so that it can be easier to make sense of complex data structures such as dictionaries. GetObjectProperties does several things that are intended to generate somewhat useful results even in cases where memory may be corrupt or unavailable: - The caller may optionally provide a type string which will be used if the memory for the object's Map is inaccessible. - All object pointers are compared against the list of known objects generated by mkgrokdump. The caller may optionally provide the pointers for the first pages of various heap spaces, to avoid spurious matches. If those pointers are not provided, then any matches are prefixed with "maybe" in the resulting description string, such as "maybe UndefinedValue (0x4288000341 <Oddball>)". Bug: v8:9376 Change-Id: Iebf3cc2dea3133c7811bcefcdf38d9458b02fded Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628012 Commit-Queue: Seth Brenith <seth.brenith@microsoft.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Stanton <mvstanton@chromium.org> Cr-Commit-Position: refs/heads/master@{#62882}
-
- 24 Jun, 2019 1 commit
-
-
Peter Marshall authored
There is a generated file config.descriptor which is an output file for a particular target. When we try to add this to sources, it breaks as GN no longer silently accepts files with invalid types as sources. This breakage was due to recently-rolled changes to fix crbug.com/gn/77 Similar fixes have been used here: crbug.com/964411 Change-Id: Ica9272647c6d1ed31780a6319cf098a083a3cc57 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1674032 Auto-Submit: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#62340}
-
- 18 Jun, 2019 1 commit
-
-
Yang Guo authored
This does not delete the files in the old locations yet since we need to fix up the references in Chrome and Node.js. Bug: v8:9247 Change-Id: I75dd469e19b6d4249ed187dd6d095d306f1b6c45 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1649355Reviewed-by: Pavel Feldman <pfeldman@chromium.org> Reviewed-by: Adam Klein <adamk@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#62258}
-
- 28 May, 2019 1 commit
-
-
Peter Marshall authored
Add .exe to the produced executable for the protoc compiler. Use include_dirs instead of -isystem. Remove some more warnings that that causes. Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng Bug: v8:8339 Change-Id: Ia6b0df63107470ec78f8038834205a0e4fe34b21 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1632069 Commit-Queue: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Auto-Submit: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#61893}
-
- 27 May, 2019 1 commit
-
-
Peter Marshall authored
Add a new abstract class TraceEventListener which is just an interface for consuming trace events. This separates the V8-specific stuff that an actual perfetto consumer needs to do e.g. handling the has_more flag and signalling back to the controller with a semaphore. This is a change from the previous plan of making the PerfettoConsumer class sub-classable to implement custom consumption of trace events. This will be difficult when the consumer is created outside of the PerfettoTracingController as we can't hook up the consumer_finished_semaphore_ that belongs to the controller. Now the PerfettoTracingController is responsible for the Consumer life- cycle and hides it entirely from callers. We add the AddTraceEventListener() method to allow callers to register a listener either for testing or a JSON listener for real tracing. This lets us write tests that can store all the trace events in memory without first converting them to JSON, letting us write test more easily. There's an example test add to test-tracing - more tests using this style will follow. Cq-Include-Trybots: luci.v8.try:v8_linux64_perfetto_dbg_ng Bug: v8:8339 Change-Id: I2d2b0f408b1c7bed954144163e1968f40d772c1b Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1628789 Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Auto-Submit: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#61854}
-
- 15 May, 2019 2 commits
-
-
Yang Guo authored
R=tmrts@chromium.org Bug: v8:9247 Change-Id: I9b34ee96e03d3cbca165452fc8427679cf6e7582 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1612900 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Tamer Tas <tmrts@chromium.org> Cr-Commit-Position: refs/heads/master@{#61518}
-
Yang Guo authored
R=jgruber@chromium.org BUG: v8:9253 Change-Id: Ifde76a8f2beb581ac4040deeaae3504e599ab4f9 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1612903 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#61516}
-
- 09 Apr, 2019 1 commit
-
-
Jakob Gruber authored
This changes debug builds [1] to compile src/compiler sources twice: 1. with optimizations, used in mksnapshot to improve performance. 2. without optimizations, linked into d8 and v8 libraries. While this adds ~200 compilation targets, these can be built in parallel and should not add much time overall. This brings mksnapshot runtime back down to 11 seconds on my machine. [1] The full condition is: is_debug && !v8_optimized_debug && v8_enable_fast_mksnapshot Cq-Include-Trybots: luci.chromium.try:android_arm64_dbg_recipe Cq-Include-Trybots: luci.chromium.try:fuchsia_x64 Bug: v8:8767 Change-Id: Iac57bf8331395d9eda9be5d192e8eeeded182ae6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532335 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60713}
-
- 02 Apr, 2019 1 commit
-
-
Tobias Tebbi authored
This reverts commit 6beea97e. Reason for revert: https://crbug.com/942497 Original change's description: > Reland^2 "[build] disable C++ optimization for mksnapshot code." > > This is a reland of a6b95a6a > > In addition to UBSan, also ASAN needs optimizations. > So this CL doesn't disable optimizations for all sanitizer builds. > > Original change's description: > > Reland "[build] disable C++ optimization for mksnapshot code." > > > > This is a reland of cee2f772 > > > > Original change's description: > > > [build] disable C++ optimization for mksnapshot code. > > > > > > By disabling C++ optimizations for code that's only run in mksnapshot, > > > that is, CSA and Torque-generated code, we can save compile time. > > > I observed up to 2x improvements of compile time for some files, > > > while the mksnapshot time did not increase significantly. > > > > > > Bug: v8:7629 > > > Change-Id: I96be2966611b2471b68023e0dd9e351d94f0013c > > > Reviewed-on: https://chromium-review.googlesource.com/c/1460941 > > > Reviewed-by: Yang Guo <yangguo@chromium.org> > > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > > > Cr-Commit-Position: refs/heads/master@{#59585} > > > > Bug: v8:7629 > > Change-Id: I8330f93173ab3d7b400e15ea4935bbe8256b250f > > Reviewed-on: https://chromium-review.googlesource.com/c/1473292 > > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > > Commit-Queue: Sigurd Schneider <sigurds@chromium.org> > > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > > Cr-Commit-Position: refs/heads/master@{#59606} > > Bug: v8:7629 > Change-Id: I42175c472d8e41345573df81645dfe3accc9d8c4 > Reviewed-on: https://chromium-review.googlesource.com/c/1475396 > Reviewed-by: Sigurd Schneider <sigurds@chromium.org> > Commit-Queue: Tobias Tebbi <tebbi@chromium.org> > Cr-Commit-Position: refs/heads/master@{#59632} TBR=yangguo@chromium.org,sigurds@chromium.org,tebbi@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:7629 chromium:942497 Change-Id: Ie51d7b53440230b41fb763541908cb1162d8850d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549158 Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#60577}
-
- 28 Mar, 2019 1 commit
-
-
Peter Marshall authored
This adds dependencies on Perfetto and Protobuf and the required configs to build them. The build configs are behind a gn flag (v8_use_perfetto) and are disabled by default. Actual implementation of Perfetto will follow. Based on Primiano's prototype: https://chromium-review.googlesource.com/c/v8/v8/+/1290549 Bug: v8:8339 TBR: yangguo@chromium.org Change-Id: I2b7462d567bfb0a5a3ffbbb8b6fcbf41c824e285 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1517876Reviewed-by: Peter Marshall <petermarshall@chromium.org> Commit-Queue: Peter Marshall <petermarshall@chromium.org> Auto-Submit: Peter Marshall <petermarshall@chromium.org> Cr-Commit-Position: refs/heads/master@{#60502}
-
- 26 Mar, 2019 2 commits
-
-
Nico Weber authored
The snapshot requires building host code in target bitness, and chromium's base doesn't build in 32-bit on mac hosts due to some 64-bit-only assembly code. Bug: chromium:794838 Change-Id: I89887fe63c88c435bc4743c3d99f22ffe79a5bd6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534635 Auto-Submit: Nico Weber <thakis@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Nico Weber <thakis@chromium.org> Cr-Commit-Position: refs/heads/master@{#60467}
-
Michael Lippautz authored
The flag has been replaced by v8_enable_raw_heap_snapshots. Bug: chromium:936797 Change-Id: I2466c6636c462fe49a090dc3c262c80fc40d783f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1532329 Auto-Submit: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60454}
-
- 20 Mar, 2019 2 commits
-
-
Michael Lippautz authored
Omit user roots when raw heap snapshots are used, i.e., when the gn flag v8_enable_raw_heap_snapshots is enabled. For regular Chrome production builds this is not the case. Blink CL: https://crrev.com/c/1529096 Bug: chromium:936797 Change-Id: I5ae0ec1ecfab9a76352d8ce927d1c40e707262cc Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1528994 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Alexei Filippov <alph@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#60351}
-
Tom Anderson authored
This CL includes a revert of [1] with thakis@'s proposed fix at [2]. Verified a build with the below gn args works on Linux: target_os = "win" target_cpu = "x86" is_debug = false is_official_build = true is_component_build = false use_goma = true enable_nacl = false use_custom_libcxx = true [1] https://chromium.googlesource.com/v8/v8.git/+/93ee541417b6f5904072c0ecdfc6fc041811b489 [2] https://bugs.chromium.org/p/chromium/issues/detail?id=942347#c2 BUG=chromium:942347 R=machenbach CC=thakis Change-Id: I34f5744a9f600efbc075f4b5ba8d1c66bff46ae6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1529250 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Auto-Submit: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#60349}
-
- 15 Mar, 2019 1 commit
-
-
Tom Anderson authored
Clang crashes in this configuration. See https://crbug.com/942347 for context. BUG=chromium:942347 R=machenbach CC=thakis Change-Id: Iffcad9556ed92ecfbd4ee062a5ed7f8c8cac1914 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1524639 Auto-Submit: Thomas Anderson <thomasanderson@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#60258}
-
- 06 Mar, 2019 1 commit
-
-
Michael Lippautz authored
Blink CL: http://crrev.com/c/1504573 Bug: chromium:936797 Change-Id: I24092f53f40dbd663ffb58122ec0239b7c185904 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1505372Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#60048}
-
- 26 Feb, 2019 1 commit
-
-
Alexei Filippov authored
The master protocol description file is js_protocol.pdl, not .json TBR=yangguo@chromium.org Change-Id: Ibaef314a63c3e1665ed56bc8c66ca18a00c7fd4f Reviewed-on: https://chromium-review.googlesource.com/c/1489976Reviewed-by: Dmitry Gozman <dgozman@chromium.org> Commit-Queue: Alexei Filippov <alph@chromium.org> Cr-Commit-Position: refs/heads/master@{#59882}
-