• yurys@chromium.org's avatar
    This is the exact copy of r17365 which was reverted in r17488 due to memory... · c7b1b79e
    yurys@chromium.org authored
    This is the exact copy of r17365 which was reverted in r17488 due to memory corruption. The root cause for the memory corruption - missing check for bump pointer limit before storing filler map must be addressed in r17626 where allocation hooks were removed from the generated code and left only in the runtime.
    
    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=bmeurer@chromium.org
    
    Review URL: https://codereview.chromium.org/61893031
    
    git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17742 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
    c7b1b79e
Name
Last commit
Last update
..
blink_tests Loading commit data...
gcmole Loading commit data...
generate_shim_headers Loading commit data...
gyp Loading commit data...
oom_dump Loading commit data...
perf_tests Loading commit data...
profviz Loading commit data...
push-to-trunk Loading commit data...
sodium Loading commit data...
testrunner Loading commit data...
v8.xcodeproj Loading commit data...
visual_studio Loading commit data...
SourceMap.js Loading commit data...
android-build.sh Loading commit data...
android-ll-prof.sh Loading commit data...
android-run.py Loading commit data...
android-sync.sh Loading commit data...
bash-completion.sh Loading commit data...
check-static-initializers.sh Loading commit data...
codemap.js Loading commit data...
common-includes.sh Loading commit data...
consarray.js Loading commit data...
csvparser.js Loading commit data...
disasm.py Loading commit data...
freebsd-tick-processor Loading commit data...
fuzz-harness.sh Loading commit data...
gc-nvp-trace-processor.py Loading commit data...
gdb-v8-support.py Loading commit data...
gen-postmortem-metadata.py Loading commit data...
generate-ten-powers.scm Loading commit data...
grokdump.py Loading commit data...
js2c.py Loading commit data...
jsmin.py Loading commit data...
lexer-shell.cc Loading commit data...
lexer-shell.gyp Loading commit data...
linux-tick-processor Loading commit data...
ll_prof.py Loading commit data...
logreader.js Loading commit data...
mac-nm Loading commit data...
mac-tick-processor Loading commit data...
merge-to-branch.sh Loading commit data...
mingw-generate-makefiles.sh Loading commit data...
nacl-run.py Loading commit data...
plot-timer-events Loading commit data...
presubmit.py Loading commit data...
process-heap-prof.py Loading commit data...
profile.js Loading commit data...
profile_view.js Loading commit data...
push-to-trunk.sh Loading commit data...
run-deopt-fuzzer.py Loading commit data...
run-llprof.sh Loading commit data...
run-tests.py Loading commit data...
run-valgrind.py Loading commit data...
splaytree.js Loading commit data...
stats-viewer.py Loading commit data...
test-push-to-trunk.sh Loading commit data...
test-server.py Loading commit data...
tick-processor.html Loading commit data...
tickprocessor-driver.js Loading commit data...
tickprocessor.js Loading commit data...
v8-info.sh Loading commit data...
v8-rolls.sh Loading commit data...
v8heapconst.py Loading commit data...
v8heapconst.py.tmpl Loading commit data...
windows-tick-processor.bat Loading commit data...