First post, by afactorydowntown
Hey guys,
This is my first post to the forum because I am seeking help with an issue I am having running some software on DOSBox version 0.74 (built from source) in Ubuntu 64-bit 12.04.2 LTS.
Every 10-15 executions, DOSBox will crash shortly after start-up. I used "gdb" to track down the error and it always seems to stem from CPU_IRET function, but the actual exception message changes. I suspect it has to do with a bad pointer or something where it just retrieves bad data due to the varying failure locations. Here are 3 example backtraces from "gdb":
#0 0x00007ffff60c0425 in raise () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff60c3b8b in abort () from /lib/x86_64-linu […]
#0 0x00007ffff60c0425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff60c3b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff6a1369d in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff6a11846 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff6a11873 in std::terminate() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff6a1196e in __cxa_throw ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00000000005bef92 in E_Exit (format=<optimized out>) at support.cpp:184
#7 0x00000000004127ee in CPU_SetSegGeneral (seg=ss, value=985) at cpu.cpp:1992
#8 0x0000000000412f7e in CPU_SwitchTask (new_tss_selector=312,
tstype=TSwitch_IRET, old_eip=18) at cpu.cpp:553
#9 0x00000000004153fb in CPU_IRET (use32=false, oldeip=<optimized out>)
at cpu.cpp:870
#10 0x00007fffedf72634 in ?? ()
#11 0x00007fffffffab78 in ?? ()
#12 0x00007fffedf6d043 in ?? ()
#13 0x0000000000081211 in ?? ()
#14 0x000000000047c5f6 in CPU_Core_Dynrec_Run () at core_dynrec.cpp:233
#15 0x0000000000408cf7 in Normal_Loop () at dosbox.cpp:132
#16 0x000000000040958e in DOSBOX_RunMachine () at dosbox.cpp:244
#17 0x000000000040faf9 in CALLBACK_RunRealInt (intnum=<optimized out>)
at callback.cpp:106
#18 0x00000000005c7d79 in DOS_Shell::Execute (this=<optimized out>,
name=<optimized out>, args=<optimized out>) at shell_misc.cpp:492
#19 0x00000000005c58d3 in DOS_Shell::DoCommand (this=0x3708e80,
line=0x7fffffffce5b "") at shell_cmds.cpp:153
#20 0x00000000005bf9de in DOS_Shell::ParseLine (this=0x3708e80,
line=0x7fffffffce50 "CODE.EXE") at shell.cpp:251
#21 0x00000000005bff32 in DOS_Shell::Run (this=0x3708e80) at shell.cpp:324
#22 0x00000000005c091f in SHELL_Init () at shell.cpp:654
#23 0x0000000000408107 in main (argc=<optimized out>, argv=<optimized out>)
at sdlmain.cpp:1880
#0 0x00007ffff60c0425 in raise () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff60c3b8b in abort () from /lib/x86_64-linu […]
#0 0x00007ffff60c0425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff60c3b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff6a1369d in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff6a11846 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff6a11873 in std::terminate() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff6a1196e in __cxa_throw ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00000000005befb2 in E_Exit (format=<optimized out>) at support.cpp:184
#7 0x00000000004135b7 in CPU_SwitchTask (new_tss_selector=0,
tstype=TSwitch_IRET, old_eip=18) at cpu.cpp:351
#8 0x000000000041541b in CPU_IRET (use32=false, oldeip=<optimized out>)
at cpu.cpp:870
#9 0x00007fffedf6ee84 in ?? ()
#10 0x00007fffffffab78 in ?? ()
#11 0x00007fffedf6d043 in ?? ()
#12 0x0000000000081211 in ?? ()
#13 0x000000000047c616 in CPU_Core_Dynrec_Run () at core_dynrec.cpp:233
#14 0x0000000000408cf7 in Normal_Loop () at dosbox.cpp:132
#15 0x000000000040958e in DOSBOX_RunMachine () at dosbox.cpp:244
#16 0x000000000040faf9 in CALLBACK_RunRealInt (intnum=<optimized out>)
at callback.cpp:106
#17 0x00000000005c7d99 in DOS_Shell::Execute (this=<optimized out>,
name=<optimized out>, args=<optimized out>) at shell_misc.cpp:492
#18 0x00000000005c58f3 in DOS_Shell::DoCommand (this=0x3708e60,
line=0x7fffffffce5b "") at shell_cmds.cpp:153
#19 0x00000000005bf9fe in DOS_Shell::ParseLine (this=0x3708e60,
line=0x7fffffffce50 "CODE.EXE") at shell.cpp:251
#20 0x00000000005bff52 in DOS_Shell::Run (this=0x3708e60) at shell.cpp:324
#21 0x00000000005c093f in SHELL_Init () at shell.cpp:654
#22 0x0000000000408107 in main (argc=<optimized out>, argv=<optimized out>)
at sdlmain.cpp:1880
#0 0x00007ffff60c0425 in raise () from /lib/x86_64-linux-gnu/libc.so.6 #1 0x00007ffff60c3b8b in abort () from /lib/x86_64-linu […]
#0 0x00007ffff60c0425 in raise () from /lib/x86_64-linux-gnu/libc.so.6
#1 0x00007ffff60c3b8b in abort () from /lib/x86_64-linux-gnu/libc.so.6
#2 0x00007ffff6a1369d in __gnu_cxx::__verbose_terminate_handler() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#3 0x00007ffff6a11846 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#4 0x00007ffff6a11873 in std::terminate() ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#5 0x00007ffff6a1196e in __cxa_throw ()
from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
#6 0x00000000005befb2 in E_Exit (format=<optimized out>) at support.cpp:184
#7 0x0000000000412f52 in CPU_SwitchTask (new_tss_selector=312,
tstype=TSwitch_IRET, old_eip=18) at cpu.cpp:532
#8 0x000000000041541b in CPU_IRET (use32=false, oldeip=<optimized out>)
at cpu.cpp:870
#9 0x00007fffedf6f2f4 in ?? ()
#10 0x00007fffffffab78 in ?? ()
#11 0x00007fffedf6d043 in ?? ()
#12 0x0000000000081211 in ?? ()
#13 0x000000000047c616 in CPU_Core_Dynrec_Run () at core_dynrec.cpp:233
#14 0x0000000000408cf7 in Normal_Loop () at dosbox.cpp:132
#15 0x000000000040958e in DOSBOX_RunMachine () at dosbox.cpp:244
#16 0x000000000040faf9 in CALLBACK_RunRealInt (intnum=<optimized out>)
at callback.cpp:106
#17 0x00000000005c7d99 in DOS_Shell::Execute (this=<optimized out>,
name=<optimized out>, args=<optimized out>) at shell_misc.cpp:492
#18 0x00000000005c58f3 in DOS_Shell::DoCommand (this=0x3708e80,
line=0x7fffffffce5b "") at shell_cmds.cpp:153
#19 0x00000000005bf9fe in DOS_Shell::ParseLine (this=0x3708e80,
line=0x7fffffffce50 "CODE.EXE") at shell.cpp:251
#20 0x00000000005bff52 in DOS_Shell::Run (this=0x3708e80) at shell.cpp:324
#21 0x00000000005c093f in SHELL_Init () at shell.cpp:654
#22 0x0000000000408107 in main (argc=<optimized out>, argv=<optimized out>)
at sdlmain.cpp:1880
Anyone have an idea what the problem may be? Any thoughts at all would be greatly appreciated. I don't really know the intricacies of the DOSBox emulation so if there is anything you want me to try out and debug, please let me know.
Thank you,
-Corey