From 0dd3ca94cee4c52d4d07a1516180a3821eb8b36c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Th=C3=A9ophile=20Bastian?= Date: Thu, 12 Apr 2018 13:23:39 +0200 Subject: [PATCH] Fix dump_my_stack to handle cleanly end of unwind --- test/dump_my_stack.cpp | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) 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) {