Skip to content

Commit 25a2c88

Browse files
committed
Print task backtraces on sigquit
1 parent d28a587 commit 25a2c88

File tree

2 files changed

+4
-0
lines changed

2 files changed

+4
-0
lines changed

src/julia_internal.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1512,6 +1512,7 @@ JL_DLLEXPORT void jl_raise_debugger(void) JL_NOTSAFEPOINT;
15121512
JL_DLLEXPORT void jl_gdblookup(void* ip) JL_NOTSAFEPOINT;
15131513
void jl_print_native_codeloc(uintptr_t ip) JL_NOTSAFEPOINT;
15141514
void jl_print_bt_entry_codeloc(jl_bt_element_t *bt_data) JL_NOTSAFEPOINT;
1515+
JL_DLLEXPORT void jl_print_task_backtraces(int show_done) JL_NOTSAFEPOINT;
15151516
#ifdef _OS_WINDOWS_
15161517
JL_DLLEXPORT void jl_refresh_dbg_module_list(void);
15171518
#endif

src/signal-handling.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -636,6 +636,9 @@ void jl_critical_error(int sig, int si_code, bt_context_t *context, jl_task_t *c
636636
jl_safe_printf("\n[%d] signal %d (%d): %s\n", getpid(), sig, si_code, strsignal(sig));
637637
else
638638
jl_safe_printf("\n[%d] signal %d: %s\n", getpid(), sig, strsignal(sig));
639+
if (sig == SIGQUIT) {
640+
jl_print_task_backtraces(0);
641+
}
639642
}
640643
jl_safe_printf("in expression starting at %s:%d\n", jl_atomic_load_relaxed(&jl_filename), jl_atomic_load_relaxed(&jl_lineno));
641644
if (context && ct) {

0 commit comments

Comments
 (0)