Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(261)

Side by Side Diff: src/frames.cc

Issue 2007343003: Move stack trace extraction code out of TickSample::Init (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: make MSAN happy Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « include/v8.h ('k') | src/profiler/profile-generator.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/frames.h" 5 #include "src/frames.h"
6 6
7 #include <sstream> 7 #include <sstream>
8 8
9 #include "src/ast/ast.h" 9 #include "src/ast/ast.h"
10 #include "src/ast/scopeinfo.h" 10 #include "src/ast/scopeinfo.h"
(...skipping 584 matching lines...) Expand 10 before | Expand all | Expand 10 after
595 595
596 596
597 StackFrame::Type ExitFrame::GetStateForFramePointer(Address fp, State* state) { 597 StackFrame::Type ExitFrame::GetStateForFramePointer(Address fp, State* state) {
598 if (fp == 0) return NONE; 598 if (fp == 0) return NONE;
599 Address sp = ComputeStackPointer(fp); 599 Address sp = ComputeStackPointer(fp);
600 FillState(fp, sp, state); 600 FillState(fp, sp, state);
601 DCHECK(*state->pc_address != NULL); 601 DCHECK(*state->pc_address != NULL);
602 return EXIT; 602 return EXIT;
603 } 603 }
604 604
605
606 Address ExitFrame::ComputeStackPointer(Address fp) { 605 Address ExitFrame::ComputeStackPointer(Address fp) {
606 #if defined(USE_SIMULATOR)
607 MSAN_MEMORY_IS_INITIALIZED(fp + ExitFrameConstants::kSPOffset, kPointerSize);
608 #endif
607 return Memory::Address_at(fp + ExitFrameConstants::kSPOffset); 609 return Memory::Address_at(fp + ExitFrameConstants::kSPOffset);
608 } 610 }
609 611
610
611 void ExitFrame::FillState(Address fp, Address sp, State* state) { 612 void ExitFrame::FillState(Address fp, Address sp, State* state) {
612 state->sp = sp; 613 state->sp = sp;
613 state->fp = fp; 614 state->fp = fp;
614 state->pc_address = ResolveReturnAddressLocation( 615 state->pc_address = ResolveReturnAddressLocation(
615 reinterpret_cast<Address*>(sp - 1 * kPCOnStackSize)); 616 reinterpret_cast<Address*>(sp - 1 * kPCOnStackSize));
616 // The constant pool recorded in the exit frame is not associated 617 // The constant pool recorded in the exit frame is not associated
617 // with the pc in this state (the return address into a C entry 618 // with the pc in this state (the return address into a C entry
618 // stub). ComputeCallerState will retrieve the constant pool 619 // stub). ComputeCallerState will retrieve the constant pool
619 // together with the associated caller pc. 620 // together with the associated caller pc.
620 state->constant_pool_address = NULL; 621 state->constant_pool_address = NULL;
(...skipping 1166 matching lines...) Expand 10 before | Expand all | Expand 10 after
1787 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { 1788 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) {
1788 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); 1789 StackFrame* frame = AllocateFrameCopy(it.frame(), zone);
1789 list.Add(frame, zone); 1790 list.Add(frame, zone);
1790 } 1791 }
1791 return list.ToVector(); 1792 return list.ToVector();
1792 } 1793 }
1793 1794
1794 1795
1795 } // namespace internal 1796 } // namespace internal
1796 } // namespace v8 1797 } // namespace v8
OLDNEW
« no previous file with comments | « include/v8.h ('k') | src/profiler/profile-generator.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698