Chromium Code Reviews| Index: runtime/lib/stacktrace.cc |
| diff --git a/runtime/lib/stacktrace.cc b/runtime/lib/stacktrace.cc |
| index 6175b24b4d18d841ce132233347e27e3053439a3..4df36428856f07c9ae5f2a6d702aae90bfec9bd8 100644 |
| --- a/runtime/lib/stacktrace.cc |
| +++ b/runtime/lib/stacktrace.cc |
| @@ -48,4 +48,20 @@ void _printCurrentStacktrace() { |
| OS::PrintErr("=== Current Trace:\n%s===\n", stacktrace.ToCString()); |
| } |
| +DEFINE_NATIVE_ENTRY(StackTrace_current, 0) { |
| + const GrowableObjectArray& code_list = |
| + GrowableObjectArray::Handle(GrowableObjectArray::New()); |
| + const GrowableObjectArray& pc_offset_list = |
| + GrowableObjectArray::Handle(GrowableObjectArray::New()); |
| + // Skip the StackFrame.current frame. |
| + IterateFrames(code_list, pc_offset_list); |
| + const Array& code_array = Array::Handle(Array::MakeArray(code_list)); |
| + const Array& pc_offset_array = |
| + Array::Handle(Array::MakeArray(pc_offset_list)); |
| + const Stacktrace& stacktrace = Stacktrace::Handle( |
| + Stacktrace::New(code_array, pc_offset_array)); |
| + return stacktrace.raw(); |
| +} |
|
Lasse Reichstein Nielsen
2015/11/18 10:11:38
The VM even has the option of dropping the first s
|
| + |
| + |
| } // namespace dart |