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

Side by Side Diff: runtime/lib/stacktrace.cc

Issue 868453002: Rename is_visible to is_reflectable; use is_debuggable instead of is_reflectable (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 11 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 | Annotate | Revision Log
« no previous file with comments | « runtime/lib/mirrors.cc ('k') | runtime/vm/debugger.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 (c) 2013, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/bootstrap_natives.h" 5 #include "vm/bootstrap_natives.h"
6 #include "vm/exceptions.h" 6 #include "vm/exceptions.h"
7 #include "vm/object_store.h" 7 #include "vm/object_store.h"
8 #include "vm/runtime_entry.h" 8 #include "vm/runtime_entry.h"
9 #include "vm/stack_frame.h" 9 #include "vm/stack_frame.h"
10 10
(...skipping 20 matching lines...) Expand all
31 } 31 }
32 32
33 33
34 static void IterateFrames(const GrowableObjectArray& code_list, 34 static void IterateFrames(const GrowableObjectArray& code_list,
35 const GrowableObjectArray& pc_offset_list) { 35 const GrowableObjectArray& pc_offset_list) {
36 StackFrameIterator frames(StackFrameIterator::kDontValidateFrames); 36 StackFrameIterator frames(StackFrameIterator::kDontValidateFrames);
37 StackFrame* frame = frames.NextFrame(); 37 StackFrame* frame = frames.NextFrame();
38 ASSERT(frame != NULL); // We expect to find a dart invocation frame. 38 ASSERT(frame != NULL); // We expect to find a dart invocation frame.
39 Code& code = Code::Handle(); 39 Code& code = Code::Handle();
40 Smi& offset = Smi::Handle(); 40 Smi& offset = Smi::Handle();
41 bool catch_frame_skipped = false; // Tracks if catch frame has been skipped. 41 intptr_t frames_to_skip = 2; // _setupFullStackTrace and the catch frame.
42 while (frame != NULL) { 42 while (frame != NULL) {
43 if (frame->IsDartFrame()) { 43 if (frame->IsDartFrame()) {
44 code = frame->LookupDartCode(); 44 code = frame->LookupDartCode();
45 offset = Smi::New(frame->pc() - code.EntryPoint()); 45 offset = Smi::New(frame->pc() - code.EntryPoint());
46 if (!catch_frame_skipped) { 46 if (frames_to_skip > 0) {
47 const Function& func = Function::Handle(code.function()); 47 frames_to_skip--;
48 // Skip over hidden native, and mark first visible frame as catch frame.
49 if (func.is_visible()) {
50 catch_frame_skipped = true;
51 }
52 } else { 48 } else {
53 code_list.Add(code); 49 code_list.Add(code);
54 pc_offset_list.Add(offset); 50 pc_offset_list.Add(offset);
55 } 51 }
56 } 52 }
57 frame = frames.NextFrame(); 53 frame = frames.NextFrame();
58 } 54 }
59 } 55 }
60 56
61 57
(...skipping 29 matching lines...) Expand all
91 IterateFrames(code_list, pc_offset_list); 87 IterateFrames(code_list, pc_offset_list);
92 const Array& code_array = Array::Handle(Array::MakeArray(code_list)); 88 const Array& code_array = Array::Handle(Array::MakeArray(code_list));
93 const Array& pc_offset_array = 89 const Array& pc_offset_array =
94 Array::Handle(Array::MakeArray(pc_offset_list)); 90 Array::Handle(Array::MakeArray(pc_offset_list));
95 const Stacktrace& stacktrace = Stacktrace::Handle( 91 const Stacktrace& stacktrace = Stacktrace::Handle(
96 Stacktrace::New(code_array, pc_offset_array)); 92 Stacktrace::New(code_array, pc_offset_array));
97 OS::Print("%s\n", stacktrace.ToCString()); 93 OS::Print("%s\n", stacktrace.ToCString());
98 } 94 }
99 95
100 } // namespace dart 96 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/lib/mirrors.cc ('k') | runtime/vm/debugger.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698