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

Side by Side Diff: src/frames.cc

Issue 1730673002: Revert of Add WasmFrame, backtraces reflect wasm's presence (Closed) Base URL: https://chromium.googlesource.com/v8/v8.git@master
Patch Set: Created 4 years, 10 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 | « src/frames.h ('k') | src/frames-inl.h » ('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 116 matching lines...) Expand 10 before | Expand all | Expand 10 after
127 switch (type) { 127 switch (type) {
128 case StackFrame::NONE: return NULL; 128 case StackFrame::NONE: return NULL;
129 STACK_FRAME_TYPE_LIST(FRAME_TYPE_CASE) 129 STACK_FRAME_TYPE_LIST(FRAME_TYPE_CASE)
130 default: break; 130 default: break;
131 } 131 }
132 return NULL; 132 return NULL;
133 133
134 #undef FRAME_TYPE_CASE 134 #undef FRAME_TYPE_CASE
135 } 135 }
136 136
137
137 // ------------------------------------------------------------------------- 138 // -------------------------------------------------------------------------
138 139
139 JavaScriptFrameIterator::JavaScriptFrameIterator(Isolate* isolate, 140
140 StackFrame::Id id) 141 JavaScriptFrameIterator::JavaScriptFrameIterator(
142 Isolate* isolate, StackFrame::Id id)
141 : iterator_(isolate) { 143 : iterator_(isolate) {
142 while (!done()) { 144 while (!done()) {
143 Advance(); 145 Advance();
144 if (frame()->id() == id) return; 146 if (frame()->id() == id) return;
145 } 147 }
146 } 148 }
147 149
148 150
149 void JavaScriptFrameIterator::Advance() { 151 void JavaScriptFrameIterator::Advance() {
150 do { 152 do {
(...skipping 286 matching lines...) Expand 10 before | Expand all | Expand 10 after
437 439
438 Object* marker = 440 Object* marker =
439 Memory::Object_at(state->fp + StandardFrameConstants::kMarkerOffset); 441 Memory::Object_at(state->fp + StandardFrameConstants::kMarkerOffset);
440 if (code_obj != nullptr) { 442 if (code_obj != nullptr) {
441 switch (code_obj->kind()) { 443 switch (code_obj->kind()) {
442 case Code::FUNCTION: 444 case Code::FUNCTION:
443 return JAVA_SCRIPT; 445 return JAVA_SCRIPT;
444 case Code::OPTIMIZED_FUNCTION: 446 case Code::OPTIMIZED_FUNCTION:
445 return OPTIMIZED; 447 return OPTIMIZED;
446 case Code::WASM_FUNCTION: 448 case Code::WASM_FUNCTION:
447 return WASM; 449 return STUB;
448 case Code::BUILTIN: 450 case Code::BUILTIN:
449 if (!marker->IsSmi()) { 451 if (!marker->IsSmi()) {
450 if (StandardFrame::IsArgumentsAdaptorFrame(state->fp)) { 452 if (StandardFrame::IsArgumentsAdaptorFrame(state->fp)) {
451 // An adapter frame has a special SMI constant for the context and 453 // An adapter frame has a special SMI constant for the context and
452 // is not distinguished through the marker. 454 // is not distinguished through the marker.
453 return ARGUMENTS_ADAPTOR; 455 return ARGUMENTS_ADAPTOR;
454 } else { 456 } else {
455 // The interpreter entry trampoline has a non-SMI marker. 457 // The interpreter entry trampoline has a non-SMI marker.
456 DCHECK(code_obj->is_interpreter_entry_trampoline() || 458 DCHECK(code_obj->is_interpreter_entry_trampoline() ||
457 code_obj->is_interpreter_enter_bytecode_dispatch()); 459 code_obj->is_interpreter_enter_bytecode_dispatch());
(...skipping 755 matching lines...) Expand 10 before | Expand all | Expand 10 after
1213 return reinterpret_cast<Code*>(code); 1215 return reinterpret_cast<Code*>(code);
1214 } 1216 }
1215 1217
1216 1218
1217 void StackFrame::PrintIndex(StringStream* accumulator, 1219 void StackFrame::PrintIndex(StringStream* accumulator,
1218 PrintMode mode, 1220 PrintMode mode,
1219 int index) { 1221 int index) {
1220 accumulator->Add((mode == OVERVIEW) ? "%5d: " : "[%d]: ", index); 1222 accumulator->Add((mode == OVERVIEW) ? "%5d: " : "[%d]: ", index);
1221 } 1223 }
1222 1224
1223 void WasmFrame::Print(StringStream* accumulator, PrintMode mode,
1224 int index) const {
1225 accumulator->Add("wasm frame");
1226 }
1227
1228 Code* WasmFrame::unchecked_code() const {
1229 return static_cast<Code*>(isolate()->FindCodeObject(pc()));
1230 }
1231
1232 void WasmFrame::Iterate(ObjectVisitor* v) const { IterateCompiledFrame(v); }
1233
1234 Address WasmFrame::GetCallerStackPointer() const {
1235 return fp() + ExitFrameConstants::kCallerSPDisplacement;
1236 }
1237 1225
1238 namespace { 1226 namespace {
1239 1227
1240 1228
1241 void PrintFunctionSource(StringStream* accumulator, SharedFunctionInfo* shared, 1229 void PrintFunctionSource(StringStream* accumulator, SharedFunctionInfo* shared,
1242 Code* code) { 1230 Code* code) {
1243 if (FLAG_max_stack_trace_source_length != 0 && code != NULL) { 1231 if (FLAG_max_stack_trace_source_length != 0 && code != NULL) {
1244 std::ostringstream os; 1232 std::ostringstream os;
1245 os << "--------- s o u r c e c o d e ---------\n" 1233 os << "--------- s o u r c e c o d e ---------\n"
1246 << SourceCodeOf(shared, FLAG_max_stack_trace_source_length) 1234 << SourceCodeOf(shared, FLAG_max_stack_trace_source_length)
(...skipping 411 matching lines...) Expand 10 before | Expand all | Expand 10 after
1658 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) { 1646 for (StackFrameIterator it(isolate); !it.done(); it.Advance()) {
1659 StackFrame* frame = AllocateFrameCopy(it.frame(), zone); 1647 StackFrame* frame = AllocateFrameCopy(it.frame(), zone);
1660 list.Add(frame, zone); 1648 list.Add(frame, zone);
1661 } 1649 }
1662 return list.ToVector(); 1650 return list.ToVector();
1663 } 1651 }
1664 1652
1665 1653
1666 } // namespace internal 1654 } // namespace internal
1667 } // namespace v8 1655 } // namespace v8
OLDNEW
« no previous file with comments | « src/frames.h ('k') | src/frames-inl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698