elliotnunn / mps

Macintosh Programmer's Workshop VM for current computers
MIT License
12 stars 0 forks source link

mps crashes running DumpObj #2

Open jduerstock opened 2 years ago

jduerstock commented 2 years ago

Hello! I've been enjoying this program a lot so far, but I stumbled across this stack trace while trying to run DumpObj. Any idea what happened here, or some pointers on figuring out how to troubleshoot it myself?

$ mps DumpOBJ X25_Interface_Library.o > x25il.dumpobj
#### stat /home/jason/add/Apple_Developer_Discs_1989-2009/1997/Mac OS SDK/97-10-1/Development Kits (Disc 1)/MacX25/MacX25 Developer's Kit/X.25_Interface_Library/Library/Sources: no such file or directory
#### Mixed Go-68k stack trace:
#### main.readDir({0xc00001a0b0, 0xa6})
####     /home/jason/mps/filemgr.go:280 +0x8f3
#### main.hostPath(0xc066?, {0xc0000c4690?, 0x16?}, 0x1)
####     /home/jason/mps/filemgr.go:221 +0x58a
#### main.tGetFInfo(0x3ffff0ae)
####     /home/jason/mps/filemgr.go:486 +0x21a
#### main.tFSDispatch(0x3ffff0ae)
####     /home/jason/mps/filemgr.go:782 +0xe87
#### main.pbWrap.func1()
####     /home/jason/mps/filemgr.go:373 +0x96
#### main.lineF(0xf060)
####     /home/jason/mps/main.go:660 +0x8d
#### 68k <???>
####     stack(3fff f0ae 3fff f4ef 0000 003a ffff ffff 3fff f4d8)
####     <run68 return address 0x3fffffea>
#### main.run68(0x5377e)
####     /home/jason/mps/68k.go:975 +0x3939
#### main.lineA(0xa260)
####     /home/jason/mps/main.go:631 +0x47e
#### 68k myFSMakeFSSpec()
####     stack(0002 0000 001e 3fff f1c0 3fff f470 3fff f800 0041)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x680c
#### 68k mpwPBMakeFSSpec()
####     stack(3fff f2f2 0060 0005 8000 0005 8000 0005 3784 3fff)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x69ba
#### 68k <no MacsBug name>
####     stack(3fff ffea 3fff f2f2 3fff f468 0000 0001 0000 0802)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x279a
#### 68k <???>
####     stack(3fff f2f2 3fff f468 0000 0001 0000 0802 3fff f800)
####     <A5-0x487c>
#### main.run68(0x5377e)
####     /home/jason/mps/68k.go:761 +0x49a5
#### main.lineA(0xa260)
####     /home/jason/mps/main.go:631 +0x47e
#### main.tHighLevelFSDispatch()
####     /home/jason/mps/hfspinafore.go:36 +0x569
#### main.lineA(0xaa52)
####     /home/jason/mps/main.go:607 +0x22a
#### 68k _fsOpen()
####     stack(0041 3494 3fff f4d8 0000 6400 0000 0000 0041 3494)
####     /home/jason/MPW/ToolServer//CODE/2/"StdLibs" +0x4778
#### 68k _fsFAccess()
####     stack(3fff f800 0000 6400 0041 3494 0000 6400 0000 0000)
####     /home/jason/MPW/ToolServer//CODE/2/"StdLibs" +0x4620
#### 68k EdFAccess()
####     stack(3fff f800 0000 6400 0041 3494 ffff 0000 0000 0000)
####     /home/jason/MPW/ToolServer//CODE/12/"macpro" +0x18e
#### 68k _faccess()
####     stack(3fff f7e0 3fff f800 0000 6400 0041 3494 0000 0800)
####     /home/jason/MPW/Tools/DumpObj//CODE/3/"MPWLibs" +0x12ba
#### 68k open()
####     stack(3fff f800 0000 0800 0000 0800 0000 0000 3a53 6f75)
####     /home/jason/MPW/Tools/DumpObj//CODE/3/"MPWLibs" +0xa72
#### 68k _openFIB()
####     stack(0027 70a6 0000 0800 0000 0000 0000 0003 002e 7452)
####     /home/jason/MPW/Tools/DumpObj//CODE/3/"MPWLibs" +0x43a6
#### 68k __FOPEN()
####     stack(0000 0027 70a6 0027 71dc 0000 0000 003e 9430 0041)
####     /home/jason/MPW/Tools/DumpObj//CODE/3/"MPWLibs" +0x44da
#### 68k <no MacsBug name>
####     stack(3fff fa68 0040 2e2c 0c0c 0027 4374 0024 e1a4 0524)
####     /home/jason/MPW/Tools/DumpObj//CODE/7/"Symbolics" +0xf00
#### 68k <no MacsBug name>
####     stack(0c0c 0027 4374 0024 e1a4 0524 3030 3033 0c46 6972)
####     /home/jason/MPW/Tools/DumpObj//CODE/7/"Symbolics" +0x7c0
#### 68k <no MacsBug name>
####     stack(0015 b8a0 37ae 3fff ffea 3fff fa8e 3fff fa8a 0000)
####     /home/jason/MPW/Tools/DumpObj//CODE/6/"Phase2" +0x19f8
#### 68k <no MacsBug name>
####     stack(37ae 3fff ffea 3fff fa8e 3fff fa8a 0000 ffff 0000)
####     /home/jason/MPW/Tools/DumpObj//CODE/1/"Main" +0x172
#### 68k STARTTOOL()
####     stack(0027 d726 0027 d704 0000 0000 0000 01d8 0000 0000)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x73b0
#### 68k launch68kTool()
####     stack(0024 e1a4 0005 3690 3fff fbc4 0000 0000 0000 0000)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x53e6
#### 68k sysLaunch()
####     stack(0024 e1a4 0000 0002 0020 1448 0026 b408 0000 0000)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x57e2
#### 68k launch()
####     stack(0000 0002 0020 1448 0026 b408 0001 0000 0000 0000)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x81a
#### 68k shellCommands()
####     stack(0001 0000 3fff fe1e 0000 0000 006a 0000 0000 001f)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x3c24
#### 68k ExecuteFilename()
####     stack(3fff fe1e 0000 0000 3fff ff9c 3fff fe60 0015 75f4)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x757a
#### 68k RunScript()
####     stack(3fff fe18 0002 0000 0003 0653 6372 6970 74ef 3fff)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x7628
#### 68k batchShell()
####     stack(0000 0000 0000 0000 0000 0000 0000 0000 0000 0003)
####     /home/jason/MPW/ToolServer//CODE/6/"Resident" +0x3104
#### 68k DoMenuCommand()
####     stack(0081 0002 0000 0000 0000 0000 0000 0000 3fff ffac)
####     /home/jason/MPW/ToolServer//CODE/1/"Main" +0x2554
#### 68k DoEvent()
####     stack(3fff ff9c 0003 0000 0000 0000 0000 0000 0000 0100)
####     /home/jason/MPW/ToolServer//CODE/1/"Main" +0x26cc
#### 68k EventLoop()
####     stack(0000 0000 0004 f6ee 3fff ffdc 0010 f722 0000 0001)
####     /home/jason/MPW/ToolServer//CODE/1/"Main" +0x278e
#### 68k main()
####     stack(0000 0001 0005 7dc2 0000 0000 0000 0000 0010 cc76)
####     /home/jason/MPW/ToolServer//CODE/1/"Main" +0x21b2
#### 68k <no MacsBug name>
####     stack(0010 c440 0000 0000 0000 0000 0000 0000 0000 0000)
####     /home/jason/MPW/ToolServer//CODE/1/"Main" +0x32d2
#### 68k %__MAIN()
####     stack(0000 0000 0000 0000 0000 0000 0000 0000 0000 0000)
####     /home/jason/MPW/ToolServer//CODE/1/"Main" +0x826
#### main.run68(0x58022)
####     /home/jason/mps/68k.go:761 +0x49a5
#### main.main()
####     /home/jason/mps/main.go:557 +0x243a
jduerstock commented 2 years ago

As a follow-on, if I make an empty "Sources" directory, the program runs to completion without issue.

elliotnunn commented 2 years ago

Hi Jason. I have just pushed b9d0147, which I think fixes this issue. The hostPath() function was panicking when the parent of a passed-in path didn't exist.