- 12 Jan, 2021 1 commit
-
-
Camillo Bruni authored
Make sure gcmole detects issue in DisallowGarbageCollection scopes. DisallowGarbageCollection is widely used in the codebase to document code that doesn't allocate. However, this has the rather unexpected side-effect that gcmole is not run when such a scope is active. This CL changes the default behavior of gcmole to run even with DisallowGarbageCollection scopes present. This will give us the best results of both worlds, dynamic checks by the fuzzer, and static analysis by gcmole. To allow crazy local raw pointer operations there is a new DisableGCMole scope that explicitly disables gcmole. Change-Id: I0a78fb3b4ceaad35be9bcf7293d917a41f90c91f Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615419Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/master@{#72039}
-
- 04 Dec, 2020 1 commit
-
-
Leszek Swirski authored
Improve the performance of gcmole by * Precompiling the regexes in GCSuspectsCollector.Resolve * Merging those regexes into a single regex, using '|' * Changing multiprocess clang plugin invocation to threaded (running the plugin releases the GIL so this can efficiently thread). This uses a simple worker pool with a single work queue. * Change clang plugin invocation loop to yield after each invocation. This pipelines the dump-callees plugin and GCSuspectsCollector Parse/Resolve, so that the parse can happen while waiting for other callee dumps to finish. Change-Id: Ib9fca70dbcfd2f9d1aebc8bd11aa1d1f7d34e24a Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562242Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Liviu Rau <liviurau@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#71617}
-
- 20 Nov, 2020 1 commit
-
-
Leszek Swirski authored
Because of LocalHeap safepoints, our existing assert scopes don't necessarily maintain the same guarantees as desired. In particular, DisallowHeapAllocation no longer guarantees that objects don't move. This patch transitions DisallowHeapAllocation to DisallowGarbageCollection, to ensure that code using this scope is also protected against safepoints. Change-Id: I0411425884f6849982611205fb17bb072881c722 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2540547 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by: Peter Marshall <petermarshall@chromium.org> Reviewed-by: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Tobias Tebbi <tebbi@chromium.org> Reviewed-by: Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#71319}
-
- 26 Oct, 2020 1 commit
-
-
Maya Lekova authored
GCMole mistakenly thought that GC guards such as DisallowHeapAllocation covered the whole scope of the function they are declared in. This CL fixes the false negatives and adds appropriate testing. Bug: v8:10071 Change-Id: Iffb369977af90ca053a55ca8f451e037a4f460f2 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2497451 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#70763}
-
- 24 Jun, 2020 1 commit
-
-
Maya Lekova authored
GCMole now comes with the long forgotten use-after-free detection enabled by default. The CL also improves error logging when test expectations mismatch with the actual output and updates the hash of GCMole to be used with the newly built version with enabled UAF detection. The CL also contains an ignore for isolate.cc due to inability to fix a warning there and fixes a couple of UAF warnings. Bug: v8:9680 Change-Id: I7a009ffd5f67b1b5437567691ca4235ea873de70 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2257236 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#68505}
-
- 26 Nov, 2019 1 commit
-
-
Maya Lekova authored
This CL ensures we care only about our internal pointer types and not about raw C++ pointers, because normally special care is taken when storing raw pointers to the managed heap. Furthermore, checking for raw pointers produces too many false positives in the dead variable analysis. Bug: v8:9680, chromium:1000635 Change-Id: Ica9ea1fe09b7456c011910a6886149b6dfdda1f5 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1924357 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Clemens Backes <clemensb@chromium.org> Cr-Commit-Position: refs/heads/master@{#65174}
-
- 29 Aug, 2019 1 commit
-
-
Maya Lekova authored
Since this produces a few false positives, also implemented a whitelist mechanism to not report them. Also, add a couple of tests and implemented automated testing against test-expectations file. Bug: v8:9321 Change-Id: I2915a29fe1891e8bbc51118bbd95ae072c8de023 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1773243 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#63456}
-