<div dir="ltr"><div>So now that longjmp works, the vm fails when returning from snapshot, somewhere during startup:<br><br>(gdb) run ../../image/trunk50-64-15711.image<br><br>Program received signal SIGSEGV, Segmentation fault.<br>0x00000000000008d4 in ?? ()<br>(gdb) call printCallStack()<br><br>          0xefaf40 M FilePath class(Behavior)>new 0x4611330: a(n) FilePath class<br>          0xefaf70 M FilePath class>pathName:isEncoded: 0x4611330: a(n) FilePath class<br>          0xefafc0 I FilePath class>pathName: 0x4611330: a(n) FilePath class<br>          0xefb010 I FileDirectory class>setDefaultDirectory: 0x45fac80: a(n) FileDirectory class<br>          0xefb058 I FileDirectory class>startUp 0x45fac80: a(n) FileDirectory class<br>          0xefb088 M FileDirectory class(Behavior)>startUp: 0x45fac80: a(n) FileDirectory class<br>          0xefb0e0 M [] in SmalltalkImage>send:toClassesNamedIn:with: 0x4653d18: a(n) SmalltalkImage<br>          0xefb130 I OrderedCollection>do: 0x49a81d8: a(n) OrderedCollection<br>          0xefb180 I SmalltalkImage>send:toClassesNamedIn:with: 0x4653d18: a(n) SmalltalkImage<br>          0xefb1d8 I SmalltalkImage>processStartUpList: 0x4653d18: a(n) SmalltalkImage<br>          0xefb230 I SmalltalkImage>snapshot:andQuit:withExitCode:embedded: 0x4653d18: a(n) SmalltalkImage<br>         0x52187b0 s SmalltalkImage>snapshot:andQuit:embedded:<br>         0x489ee20 s SmalltalkImage>snapshot:andQuit:<br><br>(gdb) i r<br>rax            0x8d4    2260<br>rbx            0x6d8018 7176216<br>rcx            0xefaf18 15707928<br>rdx            0xefaf20 15707936<br>rsi            0x506ae18        84323864<br>rdi            0x6d98f0 7182576<br>rbp            0xefaf40 0xefaf40<br>rsp            0xefaf20 0xefaf20<br>r8             0x3801f27        58728231<br>r9             0x4611330        73470768<br>r10            0x5029af8        84056824<br>r11            0x43fa9a8        71281064<br>r12            0xffffffff       4294967295<br>r13            0x10     16<br>r14            0x3b61540        62264640<br>r15            0x5654fa0        90525600<br>rip            0x8d4    0x8d4<br>eflags         0x10206  [ PF IF RF ]<br>cs             0x33     51<br>ss             0x2b     43<br>ds             0x2b     43<br>es             0x2b     43<br>fs             0x53     83<br>gs             0x2b     43<br><br>(gdb) x /8lx $rax<br>0x8d4:  Cannot access memory at address 0x8d4<br><br>(gdb) call shortPrintOop($r10)<br><br>0x5029af8: a(n) CompiledMethod$30 = 0<br><br>(gdb) call shortPrintOop($r11)<br><br>0x43fa9a8: a(n) ByteSymbol$31 = 0<br><br>(gdb) call printStringOf($r11)<br><br>basicNew<br><br>(gdb) call longPrintOop($r10)<br>         0x5029af8: a(n) CompiledMethod (0x468=>0x45f8168) format 0x1d nbytes 99 hdr8 ..... hash 0xee279<br> 0          0x3801ee0          0x3801ee0 327688(0x50008) hasPrim nLits 8 nArgs 0 nTemps 1<br> 1          0x53b0ce8 #handleFailingBasicNew<br> 2          0x4771ba8 #insufficient object memory<br> 3          0x44031d8 #basicNew:<br> 4          0x43fdff8 #isVariable<br> 5          0x43f8f30 #primitiveFailed<br> 6          0x43ffa00 #ifTrue:<br> 7          0x539b810 a(n) AdditionalMethodState a(n) CompiledMethod -> 0x43fa9a8<br> 8          0x4955a90 a(n) ClassBinding #Behavior -> 0x4614510<br><br>(gdb) call printFrame($rbp)<br><br>          0xefaf40 M FilePath class(Behavior)>new 0x4611330: a(n) FilePath class<br>          0xefaf50:   rcvr/clsr:          0x4611330     =FilePath<br>          0xefaf48:   caller ip:          0x3820ab4=58854068<br>          0xefaf40:    saved fp:           0xefaf70=15708016<br>          0xefaf38:      method:          0x380e420     0x5025bd0: a(n) CompiledMethod<br>          0xefaf38: mcfrm flags:                0x0  numArgs: 0 noContext notBlock<br>          0xefaf30:     context:          0x41e78e0     =nil<br>          0xefaf28:    receiver:          0x4611330     =FilePath<br>          0xefaf20:        stck:          0x380e4a2     =$▒(0x701c94)<br>          0xefaf18:        stck:          0x4611330     =FilePath$19 = 0<br><br>(gdb) x /16lx $rsp<br>0xefaf20:       0x0380e4a2      0x00000000      0x04611330      0x00000000<br>0xefaf30:       0x041e78e0      0x00000000      0x0380e420      0x00000000<br>0xefaf40:       0x00efaf70      0x00000000      0x03820ab4      0x00000000<br>0xefaf50:       0x04611330      0x00000000      0x04611330      0x00000000<br><br>(gdb) x /11i 0x3820ab4<br>   0x3820ab4:   push   %r9<br>   0x3820ab6:   mov    0x10(%rbp),%rdx<br>   0x3820aba:   mov    0x18(%rbp),%rcx<br>   0x3820abe:   mov    $0x0,%r8<br>   0x3820ac5:   callq  0x3800118<br>   0x3820aca:   pop    %r9<br>   0x3820acc:   mov    $0x1,%r8<br>   0x3820ad3:   callq  0x3800080<br>   0x3820ad8:   mov    %rbp,%rsp<br>   0x3820adb:   pop    %rbp<br>   0x3820adc:   retq   $0x18<br><br>(gdb) x /20i 0x3800118<br>   0x3800118:   mov    (%rsp),%r10<br>   0x380011c:   mov    %r9,(%rsp)<br>   0x3800120:   push   %rcx<br>   0x3800121:   push   %rdx<br>   0x3800122:   push   %r10<br>   0x3800124:   callq  0x3800028<br>   0x3800129:   mov    %rbp,0x48(%rbx)<br>   0x380012d:   mov    %rsp,0x40(%rbx)<br>   0x3800131:   mov    0xc3140(%rbx),%rsp<br>   0x3800138:   sub    $0x20,%rsp<br>   0x380013c:   mov    %r8,%rcx<br>   0x380013f:   xor    %rdx,%rdx<br>   0x3800142:   mov    %r9,%r8<br>   0x3800145:   mov    $0x2,%r9<br>   0x380014c:   movabs $0x442a90,%rax<br>   0x3800156:   callq  *%rax<br>   0x3800158:   add    $0x20,%rsp<br>   0x380015c:   mov    0x40(%rbx),%rsp<br>   0x3800160:   mov    0x48(%rbx),%rbp<br>   0x3800164:   retq<br><br>(gdb) x /16i 0x442a90<br>   0x442a90 <ceSendsupertonumArgs>:     sub    $0x238,%rsp<br>   0x442a97 <ceSendsupertonumArgs+7>:   mov    %rcx,0x228(%rsp)<br>   0x442a9f <ceSendsupertonumArgs+15>:  mov    %rdx,0x220(%rsp)<br>   0x442aa7 <ceSendsupertonumArgs+23>:  mov    %r8,0x218(%rsp)<br>   0x442aaf <ceSendsupertonumArgs+31>:  mov    %r9,0x210(%rsp)<br>   0x442ab7 <ceSendsupertonumArgs+39>:  cmpq   $0x0,0x3585d9(%rip)        # 0x79b098 <cFramePointerInUse><br>   0x442abf <ceSendsupertonumArgs+47>:  je     0x442b24 <ceSendsupertonumArgs+148><br>   0x442ac5 <ceSendsupertonumArgs+53>:  mov    %rbp,%rax<br>   0x442ac8 <ceSendsupertonumArgs+56>:  mov    $0x1,%cl<br>   0x442aca <ceSendsupertonumArgs+58>:  mov    %rax,0x140(%rsp)<br>   0x442ad2 <ceSendsupertonumArgs+66>:  mov    0x140(%rsp),%rax<br>   0x442ada <ceSendsupertonumArgs+74>:  mov    %rax,0x138(%rsp)<br>   0x442ae2 <ceSendsupertonumArgs+82>:  mov    0x138(%rsp),%rax<br>   0x442aea <ceSendsupertonumArgs+90>:  and    $0xf,%rax<br>   0x442aee <ceSendsupertonumArgs+94>:  cmp    $0x0,%rax<br>   0x442af2 <ceSendsupertonumArgs+98>:  mov    %cl,0x127(%rsp)<br><br>(gdb) x /18i 0x3800080<br>   0x3800080:   mov    (%rsp),%r10<br>   0x3800084:   mov    %r9,(%rsp)<br>   0x3800088:   push   %r10<br>   0x380008a:   callq  0x3800028<br>   0x380008f:   mov    %rbp,0x48(%rbx)<br>   0x3800093:   mov    %rsp,0x40(%rbx)<br>   0x3800097:   mov    0xc3140(%rbx),%rsp<br>   0x380009e:   sub    $0x20,%rsp<br>   0x38000a2:   mov    %r8,%rcx<br>   0x38000a5:   xor    %rdx,%rdx<br>   0x38000a8:   mov    %r9,%r8<br>   0x38000ab:   xor    %r9,%r9<br>   0x38000ae:   movabs $0x442a90,%rax<br>   0x38000b8:   callq  *%rax<br>   0x38000ba:   add    $0x20,%rsp<br>   0x38000be:   mov    0x40(%rbx),%rsp<br>   0x38000c2:   mov    0x48(%rbx),%rbp<br>   0x38000c6:   retq<br><br>(gdb) x /5i 0x380e4a2<br>   0x380e4a2:   mov    $0x0,%r8<br>   0x380e4a9:   callq  0x381ef60<br>   0x380e4ae:   mov    %rbp,%rsp<br>   0x380e4b1:   pop    %rbp<br>   0x380e4b2:   retq   $0x8<br><br></div>I'm stuck there...<br></div>