| Index: runtime/lib/stacktrace.cc
|
| diff --git a/runtime/lib/stacktrace.cc b/runtime/lib/stacktrace.cc
|
| index 3e02ca997d1a2174fe926b782a009079d3866189..6c40ecc58870e8d22bbbea2a8a629c80eeb63206 100644
|
| --- a/runtime/lib/stacktrace.cc
|
| +++ b/runtime/lib/stacktrace.cc
|
| @@ -38,17 +38,13 @@ static void IterateFrames(const GrowableObjectArray& code_list,
|
| ASSERT(frame != NULL); // We expect to find a dart invocation frame.
|
| Code& code = Code::Handle();
|
| Smi& offset = Smi::Handle();
|
| - bool catch_frame_skipped = false; // Tracks if catch frame has been skipped.
|
| + intptr_t frames_to_skip = 2; // _setupFullStackTrace and the catch frame.
|
| while (frame != NULL) {
|
| if (frame->IsDartFrame()) {
|
| code = frame->LookupDartCode();
|
| offset = Smi::New(frame->pc() - code.EntryPoint());
|
| - if (!catch_frame_skipped) {
|
| - const Function& func = Function::Handle(code.function());
|
| - // Skip over hidden native, and mark first visible frame as catch frame.
|
| - if (func.is_visible()) {
|
| - catch_frame_skipped = true;
|
| - }
|
| + if (frames_to_skip > 0) {
|
| + frames_to_skip--;
|
| } else {
|
| code_list.Add(code);
|
| pc_offset_list.Add(offset);
|
|
|