diff options
Diffstat (limited to 'src/vlib/main.h')
-rw-r--r-- | src/vlib/main.h | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/vlib/main.h b/src/vlib/main.h index acb9924ac44..94b8c4fa954 100644 --- a/src/vlib/main.h +++ b/src/vlib/main.h @@ -40,6 +40,7 @@ #ifndef included_vlib_main_h #define included_vlib_main_h +#include <vppinfra/clib.h> #include <vppinfra/callback_data.h> #include <vppinfra/elog.h> #include <vppinfra/format.h> @@ -376,7 +377,13 @@ always_inline void vlib_panic_with_error (vlib_main_t * vm, clib_error_t * error) { vm->main_loop_error = error; - clib_longjmp (&vm->main_loop_exit, VLIB_MAIN_LOOP_EXIT_PANIC); + if (vm->main_loop_exit_set) + clib_longjmp (&vm->main_loop_exit, VLIB_MAIN_LOOP_EXIT_PANIC); + else + { + clib_warning ("panic: %U", format_clib_error, error); + abort (); + } } #define vlib_panic_with_msg(vm,args...) \ |