diff --git a/test/dump_my_stack.cpp b/test/dump_my_stack.cpp index 0c60037..e201aab 100644 --- a/test/dump_my_stack.cpp +++ b/test/dump_my_stack.cpp @@ -28,7 +28,11 @@ void dump_my_stack() { (dl_rc && dl_inf.dli_sname) ? dl_inf.dli_sname : "(no symbol)", cur_map_entry.pathname.c_str()); fflush(stdout); - unw_context = dw.unwind_context(unw_context); + try { + unw_context = dw.unwind_context(unw_context); + } catch(const DwarfInterpret::FirstUnwindFrame& exn) { + return; + } } } @@ -36,7 +40,8 @@ void fill_my_stack(int stack_depth) { if(stack_depth == 0) dump_my_stack(); - fill_my_stack(stack_depth - 1); + else + fill_my_stack(stack_depth - 1); } int main(int argc, char** argv) {