Go to file
Peter Marshall ddb2856f39 [cpu-profiler] Fix incorrect line number calculation.
Previously when we put offsets into the SourcePositionTable, we added
the header size of the code object as well. When we pull the positions
out of the table (see ProfileGenerator::RecordTickSample) we already
account for the header size. This means the offsets in the table should
just be the offset of the PC within the actual code, not the offset
within the code object, which is what we currently store.

Currently this bug is probably not very noticeable, as it causes the
reported line numbers to be slightly too low, but still within the same
function. For a sampling profiler, we don't have any way to confirm
which lines were actually sampled, so we don't notice that the results
are wrong. The only way to see this bug is that there are some lines
within a function (towards the end of the function) that we will never
see ticks inside of, because the offset in the position table is not
reachable with valid PC offsets.

This CL removes the header size offset from values put into the source
position table stored by the profiler.

Bug: v8:7018
Change-Id: I00b17cec5f9c81d993d4e64c3c021052745a791e
Reviewed-on: https://chromium-review.googlesource.com/1016560
Reviewed-by: Jakob Gruber <jgruber@chromium.org>
Reviewed-by: Yang Guo <yangguo@chromium.org>
Commit-Queue: Peter Marshall <petermarshall@chromium.org>
Cr-Commit-Position: refs/heads/master@{#52671}
2018-04-18 14:06:27 +00:00
benchmarks Fix common misspellings 2017-08-02 09:35:28 +00:00
build_overrides [ndk] Change android ndk root for v8 2018-01-11 08:10:33 +00:00
docs [Docs] Removed unused docs because they are moved to GitHub 2015-11-19 10:23:30 +00:00
gni Fix Fuchsia build configuration. 2018-04-13 18:28:45 +00:00
include [heap] Add a read-only permission 2018-04-17 08:26:43 +00:00
infra [test] Expand test-spec format 2018-04-18 06:29:04 +00:00
samples [sample] fix potential memory leak. 2018-02-21 13:06:18 +00:00
src [cpu-profiler] Fix incorrect line number calculation. 2018-04-18 14:06:27 +00:00
test Add TypedArray.p.sort benchmarks for BigInts. 2018-04-18 12:43:55 +00:00
testing Remove dummy files created for rolling googletest. 2018-03-27 05:55:56 +00:00
third_party Removed unused antlr4 files 2018-04-10 11:40:44 +00:00
tools [tools] Make grokdump.py bind to localhost only. 2018-04-18 13:13:05 +00:00
.clang-format [clang-format] Don't derive pointer alignment 2017-01-17 09:28:19 +00:00
.editorconfig Add .editorconfig 2017-07-28 13:39:24 +00:00
.git-blame-ignore-revs [build] Add DEPS formatting to hyper-blame 2017-10-09 14:08:45 +00:00
.gitignore Add antlr4 runtime library to support Torque 2018-04-10 10:01:01 +00:00
.gn [test] Remove obsolete test262 archive extract 2018-03-28 13:52:15 +00:00
.vpython [tools] Add pypiwin32 pacakge to VPython config 2018-03-09 20:33:36 +00:00
.ycm_extra_conf.py [ycm] Switch from gnu++11 to gnu++14 2017-11-27 07:48:21 +00:00
AUTHORS Report late-bound scripts to the debugger 2018-04-17 18:27:36 +00:00
BUILD.gn Reland "Introduce CodeReference" 2018-04-18 10:20:25 +00:00
ChangeLog [tools] Merge ChangeLog from latest release 2017-12-19 12:30:56 +00:00
CODE_OF_CONDUCT.md Explicitly state that the Chromium Code of Conduct also applies to V8 2016-03-02 09:51:24 +00:00
codereview.settings Make Gerrit the default code review for V8 2017-06-30 17:37:37 +00:00
DEPS Update V8 DEPS. 2018-04-14 07:28:37 +00:00
LICENSE Add antlr4 runtime library to support Torque 2018-04-10 10:01:01 +00:00
LICENSE.fdlibm Add LICENSE.fdlibm for all the fdlibm imported sources. 2016-06-09 07:17:03 +00:00
LICENSE.strongtalk Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.v8 Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
LICENSE.valgrind Add LICENSE.v8, LICENSE.strongtalk and LICENSE.valgrind to the v8 2011-02-03 07:10:06 +00:00
OWNERS Adding a few more wasm related OWNERS. 2018-03-01 20:19:07 +00:00
PRESUBMIT.py [gyp] remove gyp files. 2018-02-08 20:04:06 +00:00
README.md [Docs] Removed unused docs because they are moved to GitHub 2015-11-19 10:23:30 +00:00
snapshot_toolchain.gni MIPS[64]: Generate snapshots on MIPS big-endian targets 2017-11-24 19:00:32 +00:00
WATCHLISTS Remove v8-x87-ports@ from WATCHLIST 2018-02-26 19:56:21 +00:00

V8 JavaScript Engine

V8 is Google's open source JavaScript engine.

V8 implements ECMAScript as specified in ECMA-262.

V8 is written in C++ and is used in Google Chrome, the open source browser from Google.

V8 can run standalone, or can be embedded into any C++ application.

V8 Project page: https://github.com/v8/v8/wiki

Getting the Code

Checkout depot tools, and run

    fetch v8

This will checkout V8 into the directory v8 and fetch all of its dependencies. To stay up to date, run

    git pull origin
    gclient sync

For fetching all branches, add the following into your remote configuration in .git/config:

    fetch = +refs/branch-heads/*:refs/remotes/branch-heads/*
    fetch = +refs/tags/*:refs/tags/*

Contributing

Please follow the instructions mentioned on the V8 wiki.