- 04 Mar, 2022 1 commit
-
-
Camillo Bruni authored
Prepare gcmole.cc for the next update: - Print possible GC locations when discovering stale/dead variables - Make error messages less confusing for the modern V8 engineer - Prepare gcmole to read suspects.allowlist instead of .whitelist - Use more readable variable names - Only log non-found types with --verbose - Change the currently unusued gccauses format in gcmole.py and support loading it back in gcmole.cc - Implemented first basic gc call-chain printing (disabled by default) GCmole packaging: - Add debug mode to bootstrap.sh build script - Update gcmole.py run instructions in bootstrap.sh and package.sh Bug: v8:10009 Change-Id: I369d48baa2980455d2e8f57e7a803d0384fe83f1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3480095Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Camillo Bruni <cbruni@chromium.org> Cr-Commit-Position: refs/heads/main@{#79357}
-
- 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}
-
- 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}
-
- 14 Mar, 2019 1 commit
-
-
Michael Starzinger authored
This is a minimalistic script usable for creating packages of gcmole together with the corresponding Clang. Such packages are used on V8's infrastructure. R=machenbach@chromium.org BUG=v8:8813 Change-Id: Iee3594a3acdc7a4e5b5d5628e5557725d27d9ced Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523068 Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Michael Achenbach <machenbach@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#60237}
-
- 08 Mar, 2019 1 commit
-
-
Michael Starzinger authored
This updates the existing bootstrap.sh script for gcmole to work against LLVM and Clang version 8.0 releases. This is a follow-up to a previous change which adapted the gcmole plugin to compile against those same versions. R=mslekova@chromium.org BUG=v8:8813 Change-Id: Id6052fb9a7ec8a63d205eab2d4e233e2121c733d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1511275Reviewed-by: Maya Lekova <mslekova@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60116}
-
- 07 Mar, 2019 1 commit
-
-
Maya Lekova authored
After introducing the new pointer-containing Object class in V8 (see https://docs.google.com/document/d/1_w49sakC1XM1OptjTurBDqO86NE16FH8LwbeUAtrbCo/edit), gcmole stopped finding errorneous usage of raw pointers in functions that could trigger GC. This CL modifies the heuristics of the tool to classify Object and MaybeObject instances as raw pointers, thus giving back the missing warnings. Updated the gcmole implementation to support modern llvm (tested with llvm 8.0) for which additional support for MaterializeTemporaryExpr, ExprWithCleanups and UnaryExprOrTypeTraitExpr was needed. Basic tests are added to make it harder to introduce such errors without noticing in the future. This version gives a lot of false positives when ran on the whole project, see https://docs.google.com/document/d/1K7eJ0f6m9QX6FZIjZnt_GFtUsjEOC_LpiAwZbcAA3f8/edit R=jkummerow@chromium.org,mstarzinger@chromium.org Bug: v8:8813 Change-Id: Ic0190a4bc2642eda8880d9f7b30b5145a76a7d89 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1494754 Commit-Queue: Maya Lekova <mslekova@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#60099}
-
- 23 Apr, 2013 1 commit
-
-
mstarzinger@chromium.org authored
R=jkummerow@chromium.org Review URL: https://codereview.chromium.org/13950017 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@14393 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-
- 07 Apr, 2011 1 commit
-
-
vegorov@chromium.org authored
GCMole is a simple static analysis tool that searches for GC-usafe evaluation order dependent callsites. Review URL: http://codereview.chromium.org/6812002 git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@7540 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
-