v8/tools
yurys@chromium.org a083601e73 Record allocation stack traces
This is initial implementation of allocation profiler.

Whenever new object allocation is reported to the HeapProfiler and allocation tracking is on we will capture current stack trace, add it to the collection of the allocation traces (a tree) and attribute the allocated size to the top JS function on the stack.

Format of serialized heap snapshot is extended to include information about recorded allocation stack traces.

This patch is r17301 plus a fix for the test crash in debug mode. The test crashed because we were traversing stack trace when just allocated object wasn't completely configured, in particular the map pointer was incorrect. Invalid Map pointer broke heap iteration required to find Code object for a given pc during stack traversal. The solution is to insert free space filler in the newly allocated block just before collecting stack trace.

BUG=chromium:277984,v8:2949
R=hpayer@chromium.org, loislo@chromium.org

Review URL: https://codereview.chromium.org/34733004

git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17365 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
2013-10-24 09:26:55 +00:00
..
blink_tests Adapt test expectations for blink test. 2013-07-30 08:50:59 +00:00
gcmole updates 2013-08-14 12:53:09 +00:00
generate_shim_headers Add dependency to ICU 4.6 2013-07-01 08:32:41 +00:00
gyp Record allocation stack traces 2013-10-24 09:26:55 +00:00
oom_dump Keep two empty lines between declarations for cpp files 2013-07-05 09:52:11 +00:00
perf_tests Update performance baseline to newest chromium LKGR. 2013-07-04 07:32:57 +00:00
profviz Restrict recorded execution pauses to the required range. 2013-09-27 13:45:17 +00:00
sodium Add tool to visualize machine code/lithium. 2013-10-21 13:35:48 +00:00
testrunner Make it possible to run a test only in the standard variant. 2013-10-17 13:09:28 +00:00
v8.xcodeproj
visual_studio
android-build.sh Rewrite Makefile rules for Android to allow parallel execution 2012-07-27 11:14:44 +00:00
android-ll-prof.sh Change default ARCH version in android low-level profiler script to 4.6 2012-10-08 11:11:30 +00:00
android-run.py Fix Android V8 path for testing on devices. 2013-06-28 07:31:23 +00:00
android-sync.sh Remove obsolete preparser binary. 2013-10-04 16:21:23 +00:00
bash-completion.sh Bash completion for d8: fix directory name completion 2012-02-08 17:20:35 +00:00
check-static-initializers.sh Change deprecated comments that still talk about SCons. 2013-04-23 08:58:23 +00:00
codemap.js Eliminate the need for code delete events in CPU profiler. 2011-09-14 11:47:03 +00:00
common-includes.sh push-to-trunk.sh/merge-to-branch.sh: use "git apply" instead of "patch" to apply patches 2012-10-05 08:58:02 +00:00
consarray.js
csvparser.js
disasm.py Add ARM support to tools/grokdump.py 2013-01-07 09:48:04 +00:00
freebsd-tick-processor
fuzz-harness.sh Fix harness for fuzzer to run for 100 iterations only. 2012-05-23 07:55:38 +00:00
gc-nvp-trace-processor.py Align tools/gc-nvp-trace-processor.py with --trace-gc-nvp output. 2011-12-15 09:41:28 +00:00
gdb-v8-support.py Added check for trailing whitespaces and corrected existing violations. 2011-09-01 11:28:10 +00:00
gen-postmortem-metadata.py Add additional postmortem debugging metadata to support decoding two-byte 2013-10-14 13:08:52 +00:00
generate-ten-powers.scm
grokdump.py Fix string and descriptor array decoding in grokdump. 2013-09-19 09:37:31 +00:00
js2c.py Change deprecated comments that still talk about SCons. 2013-04-23 08:58:23 +00:00
jsmin.py Fixing python deprecations. 2012-05-21 10:19:28 +00:00
linux-tick-processor Add source map support to tick processor. 2013-08-23 17:20:54 +00:00
ll_prof.py llprof improvements 2012-12-07 12:51:33 +00:00
logreader.js Fixing presubmit. 2011-09-15 13:20:42 +00:00
mac-nm
mac-tick-processor
merge-to-branch.sh Scripts should not care about closed tree when committing. 2013-09-24 13:35:45 +00:00
mingw-generate-makefiles.sh MinGW: Add Cygwin-free Makefile generation script 2013-04-15 08:43:18 +00:00
nacl-run.py A helper script for testing Native Client builds of V8. 2013-04-09 08:31:17 +00:00
plot-timer-events Add better consistency check and error output to plot script. 2013-09-04 15:19:21 +00:00
presubmit.py Revert "Make Array.prototype.pop throw if the last element is not configurable." 2013-10-24 07:48:23 +00:00
process-heap-prof.py Added check for trailing whitespaces and corrected existing violations. 2011-09-01 11:28:10 +00:00
profile_view.js
profile.js Revert accidental r9229 and r9230 2011-09-12 10:50:40 +00:00
push-to-trunk.sh Scripts should not care about closed tree when committing. 2013-09-24 13:35:45 +00:00
run-deopt-fuzzer.py Skip tests failing on the no-i18n bot 2013-09-20 13:13:57 +00:00
run-llprof.sh llprof improvements 2012-12-07 12:51:33 +00:00
run-tests.py Make it possible to run a test only in the standard variant. 2013-10-17 13:09:28 +00:00
run-valgrind.py Unify the shebang line of python scripts 2013-01-29 10:40:43 +00:00
SourceMap.js Add source map support to tick processor. 2013-08-23 17:20:54 +00:00
splaytree.js Remove support for logging into a memory buffer. 2011-07-13 11:31:22 +00:00
stats-viewer.py
test-push-to-trunk.sh Add test for push-to-trunk script. 2013-10-22 06:59:35 +00:00
test-server.py Change deprecated comments that still talk about SCons. 2013-04-23 08:58:23 +00:00
tick-processor.html Add HTML-based tick processor 2012-12-12 15:06:50 +00:00
tickprocessor-driver.js Add source map support to tick processor. 2013-08-23 17:20:54 +00:00
tickprocessor.js Add source map support to tick processor. 2013-08-23 17:20:54 +00:00
v8-info.sh Add sample usage / output and -u option 2013-06-12 15:36:11 +00:00
v8-rolls.sh Adding useful scripts to parse revision info. 2013-06-12 10:39:52 +00:00
v8heapconst.py Out-of-line constant pool on Arm: Stage 2 - Introduce ConstantPoolArray object. 2013-10-14 13:35:06 +00:00
v8heapconst.py.tmpl Generate grokdump constants with 'make grokdump' now. 2013-08-02 09:02:02 +00:00
windows-tick-processor.bat Add source map support to tick processor. 2013-08-23 17:20:54 +00:00