Mail Archives: djgpp/2000/03/24/04:51:00
Eli Zaretskii <eliz AT is DOT elta DOT co DOT il> escribió en el mensaje de noticias
Pine DOT SUN DOT 3 DOT 91 DOT 1000322112450 DOT 17945n AT is...
>
> On Tue, 21 Mar 2000, Francisco Pastor wrote:
>
> > I have made a program with djgpp that use serial port comunications with
> > interrupt handlers. The program work fine but when I run it with gdb
overrun
> > errors appear. That occur even with relative slow speed (2400 bps) in a
> > 100MHz 486 DX4.
>
> On what OS is this? If it's DOS, please post here the contents of
> your CONFIG.SYS and AUTOEXEC.BAT.
The OS is MSDOS 6.22
CONFIG.SYS file:
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE NOEMS I=B000-B7FF
BUFFERS=25,0
FILES=80
DOS=UMB
LASTDRIVE=Z
FCBS=4,0
DOS=HIGH
COUNTRY=034,,C:\DOS\COUNTRY.SYS
DEVICEHIGH /L:1,15872 =C:\DOS\DISPLAY.SYS CON=(EGA,,1)
STACKS=9,256
DEVICEHIGH /L:1,4560 =C:\WINDOWS\IFSHLP.SYS
DEVICEHIGH /L:2,1248 =C:\RED\IPCUST.SYS
DEVICEHIGH /L:1,512 =C:\RED\IFCUST.SYS
AUTOEXEC.BAT file:
@ECHO OFF
PATH C:\DOS;C:\WINDOWS;C:\UTIL;C:\RED
PROMPT $p$g
SET TEMP=C:\TEMP
MODE CON CODEPAGE PREPARE=((850) C:\DOS\EGA.CPI)
MODE CON CODEPAGE SELECT=850
KEYB SP,,C:\DOS\KEYBOARD.SYS
DOSKEY/BUFSIZE=1024
LH /L:0;1,14432;2,106160 /S C:\WINDOWS\net start full
>
> Also, what version of GDB is that?
>
GNU gdb 4.18
> > My doubt is if gdb affect to DPMI interrupt management.
>
> Do the overruns happen even if you don't set any breakpoints in the
> debugged program? That is, do you see the overruns when you do
> something like this:
>
> gdb yourprog
> r <put here any arguments needed by the program>
>
Ok, overrun appears without breakpoints
> GDB (well, actually the DJGPP debug support functions linked into
> GDB) hooks the timer and keyboard hardware interrupts, so it could
> theoretically slow down programs which use those, but it does nothing
> with the serial interrupt. So, as long as you don't set any
> breakpoints, there should be no slow-down due to GDB, I think.
>
I possible cause of overruns is if timer or keyboard interrupt spends more
time than the interval between two interrupts in serial communication (but I
think that 4 miliseconds for 2400 bps is a long time) . My program also hook
the timer interrupt and I suppose that this replace the gdb handler.
- Raw text -