I guess we can consider it confirmed by now, although I feel we still fail to see the actual "this makes it good/bad" here. I've had a look at a more detailed stack trace and it looks similar (or the same) but with more info: --- stack trace --- #0 0x000000000056218a in sigsuspend () No symbol table info available. #1 0x00000000004d1bd7 in dump_core_and_abort (target_sig=target_sig@entry=11) at ../../linux-user/signal.c:772 cpu = env = ts = 0x1f368a0 host_sig = 11 core_dumped = act = {__sigaction_handler = {sa_handler = 0x0, sa_sigaction = 0x0}, sa_mask = {__val = {18446744067267099647, 4294967296, 1, 549755813888, 7956000, 24576, 24576, 24592, 1537, 140051329744643, 0, 2, 32945512, 274904076288, 4271466, 3}}, sa_flags = 0, sa_restorer = 0x0} #2 0x00000000004d4964 in handle_pending_signal (cpu_env=0x1f35170, sig=11, k=0x1f36eb8) at ../../linux-user/signal.c:1099 cpu = 0x1f2ce70 handler = set = {__val = {4522484598571010, 70368776932576, 0, 140051329744832, 32723312, 0, 140722945443588, 274904640376, 32689776, 4991986, 0, 0, 16896, 0, 0, 35369322530945280}} target_old_set = {sig = {69888}} sa = ts = 0x1f368a0 #3 0x000000000041aa4f in process_pending_signals (cpu_env=) at ../../linux-user/signal.c:1185 sig = 11 blocked_set = cpu = ts = 0x1f368a0 set = {__val = {18446744067267100671, 0 }} cpu = sig = ts = set = blocked_set = restart_scan = #4 cpu_loop (env=) at ../../linux-user/riscv/cpu_loop.c:115 cs = trapnr = signum = sigcode = sigaddr = ret = gdbstep = #5 0x0000000000404168 in main (argc=, argv=, envp=) at ../../linux-user/main.c:908 regs1 = {sepc = 274904155514, ra = 0, sp = 274904081840, gp = 0, tp = 0, t0 = 0, t1 = 0, t2 = 0, s0 = 0, s1 = 0, a0 = 0, a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, a6 = 0, a7 = 0, s2 = 0, s3 = 0, s4 = 0, s5 = 0, s6 = 0, s7 = 0, s8 = 0, s9 = 0, s10 = 0, s11 = 0, t3 = 0, t4 = 0, t5 = 0, t6 = 0} regs = 0x7ffc9d2cca50 info1 = {load_bias = 274904084480, load_addr = 274877906944, start_code = 274877906944, end_code = 274878815092, start_data = 274878817208, end_data = 274878868464, start_brk = 0, brk = 274878913512, reserve_brk = 16777216, start_mmap = 2147483648, start_stack = 274904081840, stack_limit = 274895695872, entry = 274904155514, code_offset = 274877906944, data_offset = 274877906944, saved_auxv = 274904082080, auxv_len = 272, arg_start = 274904081848, arg_end = 274904081864, arg_strings = 274904082368, env_strings = 274904082381, file_string = 274904084462, elf_flags = 5, personality = 0, alignment = 4096, loadmap_addr = 0, nsegs = 2, loadsegs = 0x0, pt_dynamic_addr = 0, interpreter_loadmap_addr = 0, interpreter_pt_dynamic_addr = 0, other_info = 0x0, note_flags = 0} info = 0x7ffc9d2cc950 bprm = {buf = "\177ELF\002\001\001\000\000\000\000\000\000\000\000\000\003\000\363\000\001\000\000\000z\025\001\000\000\000\000\000@\000\000\000\000\000\000\000@\022\002\000\000\000\000\000\005\000\000\000@\000\070\000\b\000@\000\027\000\026\000\003\000\000p\004\000\000\000\000\021\002", '\000' , "\063", '\000' , "\001\000\000\000\000\000\000\000\001\000\000\000\005", '\000' , "p\335\001\000\000\000\000\000p\335\001\000\000\000\000\000\000\020\000\000\000\000\000\000\001\000\000\000\006\000\000\000 \354\001\000\000\000\000\000 \354\001\000\000\000\000\000"..., p = 274904081840, fd = 3, e_uid = 0, e_gid = 0, argc = 2, envc = 25, argv = 0x1f1b410, envp = 0x1f1e200, filename = 0x7ffc9d2ce7b6 "/bin/bash", core_dump = 0x0} ts = env = cpu = optind = target_environ = wrk = target_argv = target_argc = i = ret = 0 execfd = log_mask = max_reserved_va = 281474976710656 preserve_argv0 = __func__ = "main" --- source code stack trace --- #0 0x000000000056218a in sigsuspend () #1 0x00000000004d1bd7 in dump_core_and_abort (target_sig=target_sig@entry=11) at ../../linux-user/signal.c:772 767: kill(getpid(), host_sig); 768: 769: /* Make sure the signal isn't masked (just reuse the mask inside 770: of act) */ 771: sigdelset(&act.sa_mask, host_sig); 772: sigsuspend(&act.sa_mask); 773: 774: /* unreachable */ 775: abort(); 776: } 777: #2 0x00000000004d4964 in handle_pending_signal (cpu_env=0x1f35170, sig=11, k=0x1f36eb8) at ../../linux-user/signal.c:1099 1094: dump_core_and_abort(sig); 1095: } 1096: } else if (handler == TARGET_SIG_IGN) { 1097: /* ignore sig */ 1098: } else if (handler == TARGET_SIG_ERR) { 1099: dump_core_and_abort(sig); 1100: } else { 1101: /* compute the blocked signals during the handler execution */ 1102: sigset_t *blocked_set; 1103: 1104: target_to_host_sigset(&set, &sa->sa_mask); #3 0x000000000041aa4f in process_pending_signals (cpu_env=) at ../../linux-user/signal.c:1185 1180: &ts->sigsuspend_mask : &ts->signal_mask; 1181: 1182: if (ts->sigtab[sig - 1].pending && 1183: (!sigismember(blocked_set, 1184: target_to_host_signal_table[sig]))) { 1185: handle_pending_signal(cpu_env, sig, &ts->sigtab[sig - 1]); 1186: /* Restart scan from the beginning, as handle_pending_signal 1187: * might have resulted in a new synchronous signal (eg SIGSEGV). 1188: */ 1189: goto restart_scan; 1190: } #4 cpu_loop (env=) at ../../linux-user/riscv/cpu_loop.c:115 110: ._sifields._sigfault._addr = sigaddr 111: }; 112: queue_signal(env, info.si_signo, QEMU_SI_FAULT, &info); 113: } 114: 115: process_pending_signals(env); 116: } 117: } 118: 119: void target_cpu_copy_regs(CPUArchState *env, struct target_pt_regs *regs) 120: { #5 0x0000000000404168 in main (argc=, argv=, envp=) at ../../linux-user/main.c:908