diff --git a/sys/jit/kern_jit_asm.pas b/sys/jit/kern_jit_asm.pas index 60962ae5..59b0b4a6 100644 --- a/sys/jit/kern_jit_asm.pas +++ b/sys/jit/kern_jit_asm.pas @@ -57,7 +57,8 @@ uses vm_pmap, trap, md_context, - signal; + signal, + subr_backtrace; // @@ -67,6 +68,7 @@ function jmp_dispatcher(addr:Pointer;is_call:Boolean):Pointer; external; procedure jit_sigsegv(addr:Pointer); begin + print_backtrace_td(stderr); Writeln('jit_sigsegv:0x',HexStr(addr)); Assert(False); end; diff --git a/sys/kern/subr_backtrace.pas b/sys/kern/subr_backtrace.pas index ac461f10..ac5bc153 100644 --- a/sys/kern/subr_backtrace.pas +++ b/sys/kern/subr_backtrace.pas @@ -168,7 +168,9 @@ begin if (Pointer(addr)>=obj^.map_base) and (Pointer(addr)<(obj^.map_base+obj^.map_size)) then begin - r:=Default(TLQRec); + r.LastAdr:=nil; + r.LastNid:=0; + r.Addr:=Pointer(addr); r.Base:=fuptr(obj^.map_base); diff --git a/sys/vm/vm_map.pas b/sys/vm/vm_map.pas index 670da2ab..6ce202db 100644 --- a/sys/vm/vm_map.pas +++ b/sys/vm/vm_map.pas @@ -2238,10 +2238,15 @@ begin growsize:=sgrowsiz; + { if (max_ssize