Menu

#472 general protection at 0x70200: 0

fixed_in_git
open
nobody
None
5
2013-12-30
2013-01-29
franta
No

I just was trying install some DOS accounting program. I want run it from Linux console, locally or remote (previous versions I was run from xterm). And I find some weird behavior:

  • from console or from xterm with "-t" switch I can run DOSEMU and its FreeDOS programs, and it seems run fine
  • but when I start this program installer, then almost immediately after start (before program display anything) dosemu crashes with "ERROR: general protection at 0x70200: 0"
    message
  • however I can without problem install this program with DOSEMU running from xterm
  • And when I start this program self from console or 'dosemu -t' from X, then program start, display some its screen and then freeze - it burdens CPU at 99.9%, is unresponsive at any keyboard input (ESC, CTRL/C etc.) and dosemu must be killed.
  • I can without problems run this program with DOSEMU running from xterm

Some details about:

  • I run DOSEMU at Fedora 17 i686 32-bit Linux, SELinux disabled, mmap_min_addr = 0
  • both program and its installer seems are written in Borland TP (maybe not same version)
  • I was trying dosemu version 1.4.0.6-14.20120623git.fc17.i686 from Fedora rpmfusion repository (maintained by Justin Zygmont) and these my self-compiled versions from git repo:
    1.4.0.6-git85.g9bd03b5.1.fc17.i686
    1.4.0.7-git107.g3633a28.1.fc14.i686
    1.4.0.7-git108.ge889ccb.1.fc17.i686
    1.4.0.7-git17.g0d3e464.1.fc17.i686
    1.4.0.7-git68.g8123281.1.fc17.i686
    1.4.0.7-git97.g36b90a8.1.fc16.i686
    1.4.0.8-git112.g760339c.2.fc17.i686
    1.4.0.8-git8.gb028d3f.2.fc17.i686
    All these versions behave identicaly, installer crashed always with "general protection at 0x70200: 0"
  • In attachment are boot.log files for these crashes
  • please tell me when I can do something more or supply aditional info
1 Attachments

Related

Bugs: #472

Discussion

  • Stas Sergeev

    Stas Sergeev - 2013-01-29

    Can you attach your program?

     
    • franta

      franta - 2013-06-19

      Hello Stas, I now find that my installer (which crashes dosemu) not need this 30 MB file (which contain packed files for installation). Thus I can attach only own program, which is only ~130 kB. I attach it as bzip2 archive, for its size further reduction. Thanks for Your help.

       
  • franta

    franta - 2013-01-29

    Stas, when You confirm to attach it here I will did it, but this program
    is 30MB big and thus maybe Your direct download will be better. It is at URL:

    http://www.ucto2000.cz/DOWNLOAD/u13_cd.zip

    Unzipping it You get four files:
    -rw-r--r--. 1 root hanzlici 3083 Jan 8 10:27 CTIME.TXT
    -rw-r--r--. 1 root hanzlici 30314007 Jan 9 12:00 INSTAL1.PAK
    -rw-r--r--. 1 root hanzlici 131072 Nov 30 2000 INSTAL.EXE
    -rw-r--r--. 1 root hanzlici 1001 Dec 6 2000 INSTALL.MSG

    and INSTAL.EXE is program installer. At start it display semigraphic
    screen for destination directory selection (implicitly C:\ucto2013),
    You may confirm it. After expanding files in, it offers to increase
    config.sys "FILES=" to 150 - You may dismiss it. And it's all.
    Own program start with "C:\ucto2013\u.bat".
    Program not write anything out of its directory, it's safe run it.
    Download is public and quite legal, as it work in three modes -
    1)full with proper license, 2)as demoversion and 3)as viewer only
    for this accounting SW - and last two modes are quite free.

    Thanks Franta
    PS: In meantime I compile and tried also DOSEMU 1.4.0-svn1998,
    -svn2053 and -svn2058, all behaves quite identically as these
    newer, installer crashed with "general protection at 0x70200: 0"
    error.
    PS2: I'm not this program author, only user; and authors support
    it only on Windows OSs

    Stas Sergeev wrote:

    Can you attach your program?


    [bugs:#472] http://sourceforge.net/p/dosemu/bugs/472/ general protection at 0x70200: 0

    Status: open
    Created: Tue Jan 29, 2013 01:55 AM UTC by franta
    Last Updated: Tue Jan 29, 2013 01:55 AM UTC
    Owner: nobody

    I just was trying install some DOS accounting program. I want run it from Linux console, locally or remote (previous versions I was run from xterm). And I find some weird behavior:
    - from console or from xterm with "-t" switch I can run DOSEMU and its FreeDOS programs, and it seems run fine
    - but when I start this program installer, then almost immediately after start (before program display anything) dosemu crashes with "ERROR: general protection at 0x70200: 0"
    message
    - however I can without problem install this program with DOSEMU running from xterm
    - And when I start this program self from console or 'dosemu -t' from X, then program start, display some its screen and then freeze - it burdens CPU at 99.9%, is unresponsive at any keyboard input (ESC, CTRL/C etc.) and dosemu must be killed.
    - I can without problems run this program with DOSEMU running from xterm

    Some details about:
    - I run DOSEMU at Fedora 17 i686 32-bit Linux, SELinux disabled, mmap_min_addr = 0
    - both program and its installer seems are written in Borland TP (maybe not same version)
    - I was trying dosemu version 1.4.0.6-14.20120623git.fc17.i686 from Fedora rpmfusion repository (maintained by Justin Zygmont) and these my self-compiled versions from git repo:
    1.4.0.6-git85.g9bd03b5.1.fc17.i686
    1.4.0.7-git107.g3633a28.1.fc14.i686
    1.4.0.7-git108.ge889ccb.1.fc17.i686
    1.4.0.7-git17.g0d3e464.1.fc17.i686
    1.4.0.7-git68.g8123281.1.fc17.i686
    1.4.0.7-git97.g36b90a8.1.fc16.i686
    1.4.0.8-git112.g760339c.2.fc17.i686
    1.4.0.8-git8.gb028d3f.2.fc17.i686
    All these versions behave identicaly, installer crashed always with "general protection at 0x70200: 0"
    - In attachment are boot.log files for these crashes
    - please tell me when I can do something more or supply aditional info


    Sent from sourceforge.net because you indicated interest in https://sourceforge.net/p/dosemu/bugs/472/

    To unsubscribe from further messages, please visit https://sourceforge.net/auth/prefs/

    !DSPAM:51077faa151354934467422!

    --
    S pozdravem
    František Hanzlík

    Luční 502 Linux/Unix/LAN/Internet Tel: +420-377946353
    33209 Štěnovice e-mail:franta@hanzlici.cz Fax: +420-377946353
    Czech Republic http://hanzlici.cz/ GSM: +420-604117319
    Tento mail neobsahuje viry, byl odeslán z operačního systému Linux

     

    Related

    Bugs: #472

  • franta

    franta - 2013-01-31

    When I compared '+9a' debug boot.log logs from OK run (under xterm) and crashed run (under Linux console or 'dosemu -t'), then there is maybe important difference in crash moment:

    1) OK (xterm):
    DO_VM86,  cs=ffff:15ae ss=00d1:08ce f=000b3247
    ax=0002 bx=2cdb ss=00d1 sp=08ce bp=08e2
               cx=0000 dx=01be ds=00d1 cs=ffff ip=15ae
               si=01be di=01be es=00d1 flg=000b3247   
    RET_VM86, cs=1a96:016e ss=2a38:3e3e f=000b3202 ret=0x3302
    ax=0002 bx=0000 ss=2a38 sp=3e3e bp=3e50
               cx=0050 dx=0000 ds=202f cs=1a96 ip=016e
               si=b800 di=18c4 es=202f flg=000b3202   
    ...
    (program goes further)
    
    
    2) ERR (text console):
    DO_VM86,  cs=ffff:15ae ss=00d1:08ce f=000b3247
    ax=0002 bx=2cdb ss=00d1 sp=08ce bp=08e2
               cx=0000 dx=01be ds=00d1 cs=ffff ip=15ae
               si=01be di=01be es=00d1 flg=000b3247
    RET_VM86, cs=7020:10000 ss=2a38:3f80 f=000b3246 ret=0x1
    ax=0000 bx=0000 ss=2a38 sp=3f80 bp=7020
               cx=0000 dx=0000 ds=202f cs=7020 ip=0000
               si=0000 di=7020 es=7020 flg=000b3246   
    ERROR: general protection at 0x70200: 0
    Program=do_vm86.c, Line=294
    EIP: 7020:00010000 ESP: 2a38:00003f80  VFLAGS(b): 00000 00110010 01000110
    EAX: 01040000 EBX: 00000000 ECX: 00000000 EDX: 00000000 VFLAGS(h): 00003246
    ESI: 00000000 EDI: 00007020 EBP: 00007020 DS: 202f ES: 7020 FS: 03bd GS: 0310
    FLAGS: PF ZF IF RF VM VIF  IOPL: 3
    STACK: 20 70 20 70 20 70 20 70 20 70 -> 20 70 20 70 20 70 20 70 20 70    
    ...
    (crash servicing)
    

    Although DO_VM86 values seems same, RET_VM86 return values aren't.
    I tried clarify and perceive this, but it seems my skills are quite insufficient for solving this.
    Can You give me any help/direction?

     
  • franta

    franta - 2013-02-18

    I just tried this same on new git downloaded dosemu-1.4.0.8-git116.g6f398fd with same result. Tail of boot.log is:

    ERROR: general protection at 0x70200: 0
    Program=do_vm86.c, Line=294
    EIP: 7020:00010000 ESP: 292b:00003f80 VFLAGS(b): 00000 00110010 01000110
    EAX: 01040000 EBX: 00000000 ECX: 00000000 EDX: 00000000 VFLAGS(h): 00003246
    ESI: 00000000 EDI: 00007020 EBP: 00007020 DS: 1f22 ES: 7020 FS: 02b0 GS: c3b6
    FLAGS: PF ZF IF RF VM VIF IOPL: 3
    STACK: 20 70 20 70 20 70 20 70 20 70 -> 20 70 20 70 20 70 20 70 20 70
    OPS : 00 00 00 00 00 00 00 00 00 00 -> 00 00 00 00 00 00 00 00 00 00
    0000 7020:0000 add [bx+si],al
    00| 1ac2:00df->01acff 01| 00d1:1085->001d95 02| 1ac2:39f3->01e613
    03| 00d1:1085->001d95 04| c239:f300->0d1690 05| d110:851a->0d961a
    06| 00d1:10c2->001dd2 07| 1085:1ac2->012312 08| c006:00d1->0c0131
    09| 1989:0811->01a0a1 0a| 0600:d110->013110 0b| 07f0:00c0->007fc0
    0c| f000:c00e->0fc00e 0d| f000:c006->0fc006 0e| f000:c007->0fc007
    0f| f000:c011->0fc011 10| 00c0:07f0->0013f0 11| d110:c2f0->0dd3f0
    12| f000:c014->0fc014 13| 10c2:f000->01fc20 14| c009:00d1->0c0161
    15| f000:c017->0fc017 16| 0900:d110->016110 17| a5f0:00c0->0a5fc0
    18| f000:c01a->0fc01a 19| f000:c009->0fc009 1a| f800:7ea5->0ffea5
    1b| 1989:0870->01a100 1c| 007e:a5f0->00add0 1d| 8908:11f8->08a278
    1e| 0070:0000->000700 1f| 0811:f800->017910 20| c00c:1989->0c1a49
    21| f000:c023->0fc023 22| 0c19:8908->014a98 23| 0df0:00c0->00dfc0
    24| 1989:0932->01a1c2 25| f000:c00c->0fc00c 26| f000:c00d->0fc00d
    27| 00d1:10b2->001dc2 28| 00c0:0df0->0019f0 29| 00c0:0ef0->001af0
    2a| 00d1:1085->001d95 2b| c00e:f000->0cf0e0 2c| c00f:f000->0cf0f0
    2d| 00d1:1085->001d95 2e| 0ff0:00c0->00ffc0 2f| 10f0:00c0->010fc0
    30| d110:caea->0ddbea 31| f000:c00f->0fc00f 32| f000:c010->0fc010
    33| efff:c045->0fc035 34| 00c0:10f0->001cf0 35| 00c0:11f0->001df0
    leavedos(vm86_GP_fault|297) called - shutting down
    closing debugger pipes
    SPEAKER: sound off
    calling SIG_close
    calling keyboard_close
    GEN: fd=14 removed from select SIGIO
    00| 1ac2:00df->01acff 01| 00d1:1085->001d95 02| 1ac2:39f3->01e613
    03| 00d1:1085->001d95 04| c239:f300->0d1690 05| d110:851a->0d961a
    06| 00d1:10c2->001dd2 07| 1085:1ac2->012312 08| c006:00d1->0c0131
    09| 1989:0811->01a0a1 0a| 0600:d110->013110 0b| 07f0:00c0->007fc0
    0c| f000:c00e->0fc00e 0d| f000:c006->0fc006 0e| f000:c007->0fc007
    0f| f000:c011->0fc011 10| 00c0:07f0->0013f0 11| d110:c2f0->0dd3f0
    12| f000:c014->0fc014 13| 10c2:f000->01fc20 14| c009:00d1->0c0161
    15| f000:c017->0fc017 16| 0900:d110->016110 17| a5f0:00c0->0a5fc0
    18| f000:c01a->0fc01a 19| f000:c009->0fc009 1a| f800:7ea5->0ffea5
    1b| 1989:0870->01a100 1c| 007e:a5f0->00add0 1d| 8908:11f8->08a278
    1e| 0070:0000->000700 1f| 0811:f800->017910 20| c00c:1989->0c1a49
    21| f000:c023->0fc023 22| 0c19:8908->014a98 23| 0df0:00c0->00dfc0
    24| 1989:0932->01a1c2 25| f000:c00c->0fc00c 26| f000:c00d->0fc00d
    27| 00d1:10b2->001dc2 28| 00c0:0df0->0019f0 29| 00c0:0ef0->001af0
    2a| 00d1:1085->001d95 2b| c00e:f000->0cf0e0 2c| c00f:f000->0cf0f0
    2d| 00d1:1085->001d95 2e| 0ff0:00c0->00ffc0 2f| 10f0:00c0->010fc0
    30| d110:caea->0ddbea 31| f000:c00f->0fc00f 32| f000:c010->0fc010
    33| efff:c045->0fc035 34| 00c0:10f0->001cf0 35| 00c0:11f0->001df0
    calling disk_close_all
    releasing ports and blocked devices
    calling shared memory exit
    calling HMA exit
    calling mapping_close()
    calling close_all_printers

    No idea how debug it or how solve this?

     
  • franta

    franta - 2013-03-18

    Under the impression of late 'Different problems with different cpu_emu settings' series in dosemu-devel list I just build latest dosemu-1.4.0.8-git119.ge4ccb84 with CPU emulation enabled (before i configure it always with '--disable-cpuemu', as I run dosemu only on 32-bit distros with 'vm.mmap_min_addr = 0'). And there are results (dosemu run from X Terminal):

    • My program run fine with all $_cpu_emu variants ("off" "vm86" "full" "vm86sim" "fullsim") when dosemu run in X Window mode (xdosemu, 'dosemu -X')

    • My program crashes with all $_cpu_emu variants when dosemu run in terminal mode ('dosemu -t'). There are last parts of ~/.dosemu/boot.log :

    • $_cpu_emu=off : this wariant is described in my previous post.

    • $_cpu_emu=vm86 : I have seen three different reports:
      1):
      ...
      CONF: reserving 16Kb at 0xF0000 for 'E' (EMS page frame)
      CONF: reserving 140Kb at 0xC1000 for 'U' (Upper Memory Block (UMB, XMS 3.0))
      TIME: using 9154 usec for updating ALRM timer
      ERROR: general protection at 0x70200: 0
      Program=do_vm86.c, Line=294
      EIP: 7020:00010000 ESP: 2a38:00003f80 VFLAGS(b): 00000 00110010 01000110
      EAX: 01040000 EBX: 00000000 ECX: 00000000 EDX: 00000000 VFLAGS(h): 00003246
      ESI: 00000000 EDI: 00007020 EBP: 00007020 DS: 202f ES: 7020 FS: 03bd GS: 0310
      FLAGS: PF ZF IF RF VM VIF IOPL: 3
      STACK: 20 70 20 70 20 70 20 70 20 70 -> 20 70 20 70 20 70 20 70 20 70
      OPS : 00 00 00 00 00 00 00 00 00 00 -> 00 00 00 00 00 00 00 00 00 00
      0000 7020:0000 add [bx+si],al
      00| 1bcf:00df->01bdcf 01| 00d1:1085->001d95 02| 1bcf:39f3->01f6e3
      03| 00d1:1085->001d95 04| cf39:f300->0de690 05| d110:851b->0d961b
      06| 00d1:10c2->001dd2 07| 1085:1bcf->01241f 08| c006:00d1->0c0131
      09| 1a96:0811->01b171 0a| 0600:d110->013110 0b| 07f0:00c0->007fc0
      ...

    2):
    ...
    CONF: reserving 16Kb at 0xEC000 for 'E' (EMS page frame)
    CONF: reserving 16Kb at 0xF0000 for 'E' (EMS page frame)
    CONF: reserving 140Kb at 0xC1000 for 'U' (Upper Memory Block (UMB, XMS 3.0))
    TIME: using 9154 usec for updating ALRM timer
    ======================= ENTER CPU-EMU ===============

    leavedos(Interp86|3056) called - shutting down
    ======================= LEAVE CPU-EMU ===============

    3):
    ...
    CONF: reserving 16Kb at 0xF0000 for 'E' (EMS page frame)
    CONF: reserving 140Kb at 0xC1000 for 'U' (Upper Memory Block (UMB, XMS 3.0))
    TIME: using 9154 usec for updating ALRM timer
    ======================= ENTER CPU-EMU ===============

    • Fault out of DOSEMU code, cs:eip=73:8113d3f, cr2=616b, fault_cnt=1
      leavedos(Interp86|3056) called - shutting down
      ======================= LEAVE CPU-EMU ===============

    • $_cpu_emu=full : I have seen three different reports:
      1):
      ...
      CONF: reserving 140Kb at 0xC1000 for 'U' (Upper Memory Block (UMB, XMS 3.0))
      TIME: using 9154 usec for updating ALRM timer
      ERROR: general protection at 0x70200: 0
      Program=do_vm86.c, Line=294
      EIP: 7020:00010000 ESP: 2a38:00003f80 VFLAGS(b): 00000 00110010 01000110
      EAX: 01040000 EBX: 00000000 ECX: 00000000 EDX: 00000000 VFLAGS(h): 00003246
      ESI: 00000000 EDI: 00007020 EBP: 00007020 DS: 202f ES: 7020 FS: 03bd GS: 0310
      FLAGS: PF ZF IF RF VM VIF IOPL: 3
      STACK: 20 70 20 70 20 70 20 70 20 70 -> 20 70 20 70 20 70 20 70 20 70
      OPS : 00 00 00 00 00 00 00 00 00 00 -> 00 00 00 00 00 00 00 00 00 00
      0000 7020:0000 add [bx+si],al
      00| 1bcf:00df->01bdcf 01| 00d1:1085->001d95 02| 1bcf:39f3->01f6e3
      03| 00d1:1085->001d95 04| cf39:f300->0de690 05| d110:851b->0d961b
      06| 00d1:10c2->001dd2 07| 1085:1bcf->01241f 08| c006:00d1->0c0131
      09| 1a96:0811->01b171 0a| 0600:d110->013110 0b| 07f0:00c0->007fc0
      0c| f000:c00e->0fc00e 0d| f000:c006->0fc006 0e| f000:c007->0fc007
      0f| f000:c011->0fc011 10| 00c0:07f0->0013f0 11| d110:c2f0->0dd3f0
      12| f000:c014->0fc014 13| 10c2:f000->01fc20 14| c009:00d1->0c0161
      15| f000:c017->0fc017 16| 0900:d110->016110 17| a5f0:00c0->0a5fc0
      18| f000:c01a->0fc01a 19| f000:c009->0fc009 1a| f800:7ea5->0ffea5
      1b| 1a96:0870->01b1d0 1c| 007e:a5f0->00add0 1d| 9608:11f8->097278
      1e| 0070:0000->000700 1f| 0811:f800->017910 20| c00c:1a96->0c1b56
      ...

    2):
    ...
    CONF: reserving 16Kb at 0xF0000 for 'E' (EMS page frame)
    CONF: reserving 140Kb at 0xC1000 for 'U' (Upper Memory Block (UMB, XMS 3.0))
    TIME: using 9154 usec for updating ALRM timer
    ======================= ENTER CPU-EMU ===============

    leavedos(Interp86|3056) called - shutting down
    ======================= LEAVE CPU-EMU ===============

    3):
    ...
    CONF: reserving 140Kb at 0xC1000 for 'U' (Upper Memory Block (UMB, XMS 3.0))
    TIME: using 9154 usec for updating ALRM timer
    ======================= ENTER CPU-EMU ===============

    • Fault out of DOSEMU code, cs:eip=73:8113d3f, cr2=616b, fault_cnt=1
      leavedos(Interp86|3056) called - shutting down
      ======================= LEAVE CPU-EMU ===============

    • $_cpu_emu=vm86sim : I have seen two different reports:
      1):
      ...
      CONF: reserving 140Kb at 0xC1000 for 'U' (Upper Memory Block (UMB, XMS 3.0))
      TIME: using 9154 usec for updating ALRM timer
      ERROR: MFS: couldn't find root path /tmp/HRY
      ERROR: general protection at 0x70200: 0
      Program=do_vm86.c, Line=294
      EIP: 7020:00010000 ESP: 2a38:00003f80 VFLAGS(b): 00000 00110010 01000110
      EAX: 01040000 EBX: 00000000 ECX: 00000000 EDX: 00000000 VFLAGS(h): 00003246
      ESI: 00000000 EDI: 00007020 EBP: 00007020 DS: 202f ES: 7020 FS: 03bd GS: 0310
      FLAGS: PF ZF IF RF VM VIF IOPL: 3
      STACK: 20 70 20 70 20 70 20 70 20 70 -> 20 70 20 70 20 70 20 70 20 70
      OPS : 00 00 00 00 00 00 00 00 00 00 -> 00 00 00 00 00 00 00 00 00 00
      0000 7020:0000 add [bx+si],al
      00| 1bcf:00df->01bdcf 01| 00d1:1085->001d95 02| 1bcf:39f3->01f6e3
      03| 00d1:1085->001d95 04| cf39:f300->0de690 05| d110:851b->0d961b
      06| 00d1:10c2->001dd2 07| 1085:1bcf->01241f 08| c006:00d1->0c0131
      09| 1a96:0811->01b171 0a| 0600:d110->013110 0b| 07f0:00c0->007fc0
      0c| f000:c00e->0fc00e 0d| f000:c006->0fc006 0e| f000:c007->0fc007
      0f| f000:c011->0fc011 10| 00c0:07f0->0013f0 11| d110:c2f0->0dd3f0
      12| f000:c014->0fc014 13| 10c2:f000->01fc20 14| c009:00d1->0c0161
      15| f000:c017->0fc017 16| 0900:d110->016110 17| a5f0:00c0->0a5fc0
      18| f000:c01a->0fc01a 19| f000:c009->0fc009 1a| f800:7ea5->0ffea5
      1b| 1a96:0870->01b1d0 1c| 007e:a5f0->00add0 1d| 9608:11f8->097278
      1e| 0070:0000->000700 1f| 0811:f800->017910 20| c00c:1a96->0c1b56
      21| f000:c023->0fc023 22| 0c1a:9608->0157a8 23| 0df0:00c0->00dfc0
      24| 1a96:0932->01b292 25| f000:c00c->0fc00c 26| f000:c00d->0fc00d
      27| 00d1:10b2->001dc2 28| 00c0:0df0->0019f0 29| 00c0:0ef0->001af0
      2a| 00d1:1085->001d95 2b| c00e:f000->0cf0e0 2c| c00f:f000->0cf0f0
      2d| 00d1:1085->001d95 2e| 0ff0:00c0->00ffc0 2f| 10f0:00c0->010fc0
      30| d110:caea->0ddbea 31| f000:c00f->0fc00f 32| f000:c010->0fc010
      33| efff:c045->0fc035 34| 00c0:10f0->001cf0 35| 00c0:11f0->001df0
      leavedos(vm86_GP_fault|297) called - shutting down
      closing debugger pipes
      SPEAKER: sound off
      calling SIG_close
      calling keyboard_close
      GEN: fd=14 removed from select SIGIO
      00| 1bcf:00df->01bdcf 01| 00d1:1085->001d95 02| 1bcf:39f3->01f6e3
      03| 00d1:1085->001d95 04| cf39:f300->0de690 05| d110:851b->0d961b
      06| 00d1:10c2->001dd2 07| 1085:1bcf->01241f 08| c006:00d1->0c0131
      09| 1a96:0811->01b171 0a| 0600:d110->013110 0b| 07f0:00c0->007fc0
      0c| f000:c00e->0fc00e 0d| f000:c006->0fc006 0e| f000:c007->0fc007
      0f| f000:c011->0fc011 10| 00c0:07f0->0013f0 11| d110:c2f0->0dd3f0
      12| f000:c014->0fc014 13| 10c2:f000->01fc20 14| c009:00d1->0c0161
      15| f000:c017->0fc017 16| 0900:d110->016110 17| a5f0:00c0->0a5fc0
      18| f000:c01a->0fc01a 19| f000:c009->0fc009 1a| f800:7ea5->0ffea5
      1b| 1a96:0870->01b1d0 1c| 007e:a5f0->00add0 1d| 9608:11f8->097278
      1e| 0070:0000->000700 1f| 0811:f800->017910 20| c00c:1a96->0c1b56
      21| f000:c023->0fc023 22| 0c1a:9608->0157a8 23| 0df0:00c0->00dfc0
      24| 1a96:0932->01b292 25| f000:c00c->0fc00c 26| f000:c00d->0fc00d
      27| 00d1:10b2->001dc2 28| 00c0:0df0->0019f0 29| 00c0:0ef0->001af0
      2a| 00d1:1085->001d95 2b| c00e:f000->0cf0e0 2c| c00f:f000->0cf0f0
      2d| 00d1:1085->001d95 2e| 0ff0:00c0->00ffc0 2f| 10f0:00c0->010fc0
      30| d110:caea->0ddbea 31| f000:c00f->0fc00f 32| f000:c010->0fc010
      33| efff:c045->0fc035 34| 00c0:10f0->001cf0 35| 00c0:11f0->001df0
      calling disk_close_all
      releasing ports and blocked devices
      calling shared memory exit
      calling HMA exit
      calling mapping_close()
      calling close_all_printers

    2):
    ...
    CONF: reserving 16Kb at 0xEC000 for 'E' (EMS page frame)
    CONF: reserving 16Kb at 0xF0000 for 'E' (EMS page frame)
    CONF: reserving 140Kb at 0xC1000 for 'U' (Upper Memory Block (UMB, XMS 3.0))
    TIME: using 9154 usec for updating ALRM timer
    ======================= ENTER CPU-EMU ===============

    ERROR: unexpected CPU exception 0x0e err=0x00000006 cr2=08738120 while in vm86 (DOS)

    leavedos(dosemu_fault1|204) called - shutting down
    leavedos() called from within a signal context!
    ======================= LEAVE CPU-EMU ===============

    • $_cpu_emu=fullsim : IMO crashes are same as with '$_cpu_emu=vm86sim'

    Have one any idea how I can help more?

     
  • Stas Sergeev

    Stas Sergeev - 2013-06-19
    • status: open --> pending
    • Group: --> fixed_in_git
     
  • Stas Sergeev

    Stas Sergeev - 2013-06-19

    Sorry, I can't reproduce your problem on
    the current git branch "devel".
    Even with 'dosemu -t' it works fine for me.
    So either something was recently fixed, or
    there is something in your config.sys/autoexec.bat
    that prevents it from working.

     
  • franta

    franta - 2013-06-19

    I just tried it with current branch 'devel' (228.g930be0d) and dosemu still crashes.
    Crashes with $_cpu_emu="off", "vm86", "vm86sim" (all what I tried).

    I build it with "--with-fdtarball=dosemu-freedos-1.0-bin.tgz --with-svgalib --target=i686 --with-gpm --enable-debug --with-alsa --with-sndfile --with-x --with-slang --with-target-cpu=i686 --disable-aspi".

    My 'config.sys':
    DOS=UMB,HIGH
    dosdata=umb
    lastdrive=Z
    install=d:\dosemu\lredir.com z: linux\fs\${DOSEMU_LIB_DIR}/drive_z ro
    shellhigh=z:\command.com /e:1024 /p

    My 'autoexec.bat':
    @echo off
    path z:\bin;z:\gnu;z:\dosemu
    set TEMP=c:\tmp
    prompt $P$G
    cd \ui
    instal

    My 'dosemu.conf':
    $_cpu = "80686"
    $_cpu_emu = "off"
    $_rdtsc = (on)
    $_hogthreshold = (0)
    $_full_file_locks = (on)
    $_dosmem = (640)
    $_xms = (16384)
    $_ems = (4096)
    $_debug = "-a+cw"
    logfilesize 0x2000000
    $_external_char_set = "utf8"
    $_internal_char_set = "cp895"
    $_layout = "auto"
    $_rawkeyboard = (0)
    $_lpt1 = "lpr -l -P k5400"
    $_lpt3="/usr/local/bin/dospclwork >/tmp/dospclwork2.log 2>/tmp/dospclwork2.err"
    $_printer_timeout = (5)
    $_speaker = "native"
    $_sound = (2)
    $_pktdriver = (off)
    $_X_title = "DOS in a KLEMP LINUX BOX"
    $_X_title_show_appname = (on)
    $_X_icon_name = "X Dosemu"
    $_X_keycode = (off)
    $_X_mitshm = (off)
    $_X_fixed_aspect = (off)
    $_X_aspect_43 = (off)
    $_X_lin_filt = (on)
    $_X_bilin_filt = (on)
    $_X_winsize = "1276,996"
    $_X_vgaemu_memsize = (8192)
    $_X_background_pause = (off)
    $_console = (0)
    $_graphics = (0)

    When this program run for You, then maybe I have some specific HW or SW configuration? As I'm not so good Linux programmer, but I want tutor something, can You kick me to right way what I should try now?

     
  • Stas Sergeev

    Stas Sergeev - 2013-06-20

    So your config.sys/autoexec.bat look harmless.
    But your dosemu.conf is not: please reproduce
    the problem on the default dosemu.conf, with
    minimal changes (change only pathes to drives).
    My freedos is "2036 cvs".
    As for HW configuration, I am running on x86_64,
    which should be matched by $_cpu_emu="vm86", which
    is what you seem to have already tried...
    Another thing you should try is to disable
    DOS=HIGH,UMB

     
  • franta

    franta - 2013-12-15

    I just try this program again, with actual DOSEMU devel branch git 402.gffd9c3c on Fedora 19 i686, with 'cpu_emu = "off"' (vm.mmap_min_addr = 0).
    My /etc/dosemu/dosemu.conf is minimal only:
    $_debug = "+9a"
    logfilesize 0x66543210
    $_sound = (0)

    (I must have '$_sound = (0)', because otherwise DOSEMU exits on permission error:

    Failed to create secure directory (/run/user/1000/pulse): Permission denied
    Failed to create secure directory (/run/user/1000/pulse): Permission denied
    ALSA lib pulse.c:243:(pulse_connect) PulseAudio: Unable to connect: Connection refused

    ). Other two lines are only for debugging, DOSEMU crashes identically if they are commented, at same addresses.
    Behavior is same as I described previously, 'xdosemu' work fine, but 'dosemu -t' crashes. Parts '+9a' log outputs from both runs immediately before crash are:

    'xdosemu':
    DO_VM86, cs=fc00:0233 ss=00d1:08ce f=00033247
    ax=0002 bx=2cdb ss=00d1 sp=08ce bp=08e2
         cx=0000 dx=01be ds=00d1 cs=fc00 ip=0233
         si=01be di=01be es=00d1 flg=00033247
    RET_VM86, cs=fc00:0233 ss=00d1:08ce f=00033247 ret=0x1
    ax=0002 bx=2cdb ss=00d1 sp=08ce bp=08e2
         cx=0000 dx=01be ds=00d1 cs=fc00 ip=0233
         si=01be di=01be es=00d1 flg=00033247
    DO_VM86, cs=ffff:15ae ss=00d1:08ce f=000b3247
    ax=0002 bx=2cdb ss=00d1 sp=08ce bp=08e2
         cx=0000 dx=01be ds=00d1 cs=ffff ip=15ae
         si=01be di=01be es=00d1 flg=000b3247
    RET_VM86, cs=fc00:0103 ss=2923:3caa f=00033247 ret=0x1
    ax=0002 bx=3cb2 ss=2923 sp=3caa bp=3cb2
         cx=0000 dx=3df2 ds=2923 cs=fc00 ip=0103
         si=3cd0 di=3dc2 es=2923 flg=00033247
    DO_VM86, cs=1aba:4210 ss=2923:3cb0 f=000b3247      <=======
    ax=0002 bx=3cb2 ss=2923 sp=3cb0 bp=3cb2          <=======
         cx=0000 dx=3df2 ds=2923 cs=1aba ip=4210      <=======
         si=3cd0 di=3dc2 es=2923 flg=000b3247          <=======
    RET_VM86, cs=1981:016e ss=2923:3e3e f=000b3202 ret=0x3302    <=======
    ax=0002 bx=0000 ss=2923 sp=3e3e bp=3e50          <=======
         cx=0050 dx=0000 ds=1f1a cs=1981 ip=016e      <=======
         si=b800 di=18c4 es=1f1a flg=000b3202          <=======
    Do INT0x33 eax=0x01040002 ebx=0x00000000 ss=0x2923 esp=0x00003e3e
         ecx=0x00000050 edx=0x00000000 ds=0x1f1a cs=0x1981 ip=0x016e
         esi=0x0000b800 edi=0x000018c4 es=0x1f1a flg=0x000b3202
    DO_VM86, cs=fc00:0237 ss=2923:3e3e f=00033202
    ax=0002 bx=0000 ss=2923 sp=3e3e bp=3e50
         cx=0050 dx=0000 ds=1f1a cs=fc00 ip=0237
         si=b800 di=18c4 es=1f1a flg=00033202

    'dosemu -t':
    DO_VM86, cs=fc00:0233 ss=00d1:08ce f=00033247
    ax=0002 bx=2cdb ss=00d1 sp=08ce bp=08e2
         cx=0000 dx=01be ds=00d1 cs=fc00 ip=0233
         si=01be di=01be es=00d1 flg=00033247
    RET_VM86, cs=fc00:0233 ss=00d1:08ce f=00033247 ret=0x1
    ax=0002 bx=2cdb ss=00d1 sp=08ce bp=08e2
         cx=0000 dx=01be ds=00d1 cs=fc00 ip=0233
         si=01be di=01be es=00d1 flg=00033247
    DO_VM86, cs=ffff:15ae ss=00d1:08ce f=000b3247
    ax=0002 bx=2cdb ss=00d1 sp=08ce bp=08e2
         cx=0000 dx=01be ds=00d1 cs=ffff ip=15ae
         si=01be di=01be es=00d1 flg=000b3247
    RET_VM86, cs=fc00:0103 ss=2923:3caa f=00033247 ret=0x1
    ax=0002 bx=3cb2 ss=2923 sp=3caa bp=3cb2
         cx=0000 dx=3df2 ds=2923 cs=fc00 ip=0103
         si=3cd0 di=3dc2 es=2923 flg=00033247
    DO_VM86, cs=1aba:4210 ss=2923:3cb0 f=000b3247      <=======
    ax=0002 bx=3cb2 ss=2923 sp=3cb0 bp=3cb2          <=======
         cx=0000 dx=3df2 ds=2923 cs=1aba ip=4210      <=======
         si=3cd0 di=3dc2 es=2923 flg=000b3247          <=======
    RET_VM86, cs=7020:10000 ss=2923:3f80 f=000b3246 ret=0x1      <=======
    ax=0000 bx=0000 ss=2923 sp=3f80 bp=7020      <=======
         cx=0000 dx=0000 ds=1f1a cs=7020 ip=0000      <=======
         si=0000 di=7020 es=7020 flg=000b3246          <=======
    ERROR: general protection at 0x70200: 0
    Program=do_vm86.c, Line=299
    EIP: 7020:00010000 ESP: 2923:00003f80 VFLAGS(b): 00000 00110010 01000110
    EAX: 01040000 EBX: 00000000 ECX: 00000000 EDX: 00000000 VFLAGS(h): 00003246
    ESI: 00000000 EDI: 00007020 EBP: 00007020 DS: 1f1a ES: 7020 FS: 02a8 GS: c392
    FLAGS: PF ZF IF RF VM VIF IOPL: 3

    Comparing them, it seems as there is some bad inside '<==' marked 'DO_VM86' block: although logged register values at block beginning (displayed at DO_VM86 level) are same,
    those displayed at block end (at RET_VM86 level) are different and in 'dosemu -t' case apparently bad.

    IMO this may somehow relate with video output, as I thing somewhere in this position program begin display something (in semi-graphics mode).

    Is there any method, which I can did, for this error further discovery?
    What program does in VM_86 block?

    I'm looking at emu-i386/do_vm86.c and include/vm86plus.h, but it is perhaps beyond my ability... :(

     
  • franta

    franta - 2013-12-15

    small step onwards - according to xdosemu log (which run fine) it seems as somewhere closely to crash position DOSEMU leave run_vm86() because to INT 0x33 ax=2 (MS MOUSE v1.0+ - HIDE MOUSE CURSOR). And after some fiddling I find that DOSEMU crash not occurs when I run DOSEMU from 'pure' DOS console when resolution is 80x25 chars (using 'nomodeset' kernel param and replacing 'gfxterm' by 'console' in grub2.cfg).
    Program not crashes even when I run it as 'dosemu -t' in xterm, when I resize xterm window to 80x25 (according to 'stty -a'). My previous 'always occured crashes' was because I had in both console and xterm resolution different than 80x25 (essentially bigger).

    Reviewing log, I see from program start several int 33 Mouse calls, but none was with AX=2 - this was not called until crash point.

    Is this info useful? Can I did something further?

     
  • Stas Sergeev

    Stas Sergeev - 2013-12-16

    Reproduceable with the large xterm.
    How have you found out its a dosemu's
    fault? Does it work fine under enlarged
    dosbox?
    I am inclined to close this.

     
    • franta

      franta - 2013-12-16

      Primary bug can be in program itself, in its Turbopascal units/compiled code, or in FreeDOS code, I not know and I don't know how uncover it, I have no program sources (and will not have), as well Turbopascal sources.
      What is a bit strange is facts, that 1) under X it seems work fine, and 2) dosemu probably (but again, I'm not sure) should not crash in this manner.

      But, as it is only installer for DOS program, and now is clear how avoid this crash, I fully agree to close this.

      Once again, many thanks for Your effort with this problem.

       
  • Stas Sergeev

    Stas Sergeev - 2013-12-16

    1) under X it seems work fine

    How have you enlarged xdosemu to test this?

    2) dosemu probably (but again, I'm not sure) should not crash in this manner.

    It is a "polite" crash, dosemu detected the
    CPU exception after IP overflowed.
    The error message doesn't suggest the polite
    manner simply because usually the encountered
    exception in DOS code means that dosemu did
    something wrong already before. So the error
    was made vocal. But in this case it is not obvious.
    Running on big terminal is an undocumented feature,
    I'd say.
    It may be a dosemu bug, but I wonder how to
    even verify that...

     
  • Stas Sergeev

    Stas Sergeev - 2013-12-16

    Hmm, doesn't seem to be reproduceable with
    PC-DOS... Could you try on MS-DOS?

     
    • franta

      franta - 2013-12-16

      I'd little problem obtain msdos, but now I tested with v6.22, with results:
      independently on setting no. of rows (I tried 25 - 128), when I had no. of columns up to 133, then all was fine. When I tried 134 columns and more, MS-DOS 6.22/DOSEMU crashes with same error as I described above with FreeDOS (

      ERROR: general protection at 0x70200: 0
      Program=do_vm86.c, Line=299
      EIP: 7020:00010000 ESP: 38fa:00003f80 VFLAGS(b): 00000 00110010 01000110
      EAX: 00000000 EBX: 00000000 ECX: 00000000 EDX: 00000000 VFLAGS(h): 00003246
      ESI: 00000000 EDI: 00007020 EBP: 00007020 DS: 2ef1 ES: 7020 FS: 0000 GS: 0000
      FLAGS: PF ZF IF RF VM VIF IOPL: 3
      STACK: 20 70 20 70 20 70 20 70 20 70 -> 20 70 20 70 20 70 20 70 20 70
      OPS : 00 00 00 00 00 00 00 00 00 00 -> 00 00 00 00 00 00 00 00 00 00

      )
      When I set 129 rows and more, DOSEMU ends 'smoothly' with message (here I had screen size 106 columns and 131 rows):

      ERROR: Screen size is too large: 106x131, max is 255x128

       
  • Stas Sergeev

    Stas Sergeev - 2013-12-17
    • status: pending --> open
     
  • Stas Sergeev

    Stas Sergeev - 2013-12-17

    You are right, independent of DOS.
    Its just that at home my monitor is too
    small so 134 was not occuring.
    I have no idea what to do about this.
    http://help.fdos.org/en/hhstndrd/base/mode.htm
    Here it is said that mode.com can set
    up to 132x60. Maybe dosemu should just
    enforce that limit, I have no idea.
    Obviously 132 is very close to the 133
    value you discovered, so it looks like
    the real limit of something somewhere.
    And this needs to be verified with other
    emulators too, but you can't. :)
    Bart, any help?

     
  • franta

    franta - 2013-12-17

    As according to actual VESA Bios Extensions (VBE) 3.0 here:
    http://en.wikipedia.org/wiki/VESA_BIOS_Extensions
    , upper limits for text mode is 132 columns and 60 rows. Thus IMO DOSEMU should eventually print some warning /to log?/ about likely problems when these boundaries are exceeded, but nothing else perhaps should be done, nobody on DOS expect some bigger values for cols/lines.

    Running in text mode with greater resolution than 60x132 maybe will be without problems when printing text on screen in flat raw mode, and problems are expected in cases where are provided some direct cursor addressing and/or mouse operations.

    Thus I really prefer close this case; waste of time

     
  • Stas Sergeev

    Stas Sergeev - 2013-12-18

    , upper limits for text mode is 132 columns and 60 rows. Thus IMO DOSEMU should
    eventually print some warning

    Even this doesn't look good, because the
    text modes only provide fixed resolutions,
    not any resolution in range 1...132.
    And printing the warning for any resolution
    that differs from the default values, doesn't
    sound too sensible either.

     

Log in to post a comment.

MongoDB Logo MongoDB