delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/1999/01/07/12:46:33

X-Authentication-Warning: ieva01.lanet.lv: pavenis owned process doing -bs
Date: Thu, 7 Jan 1999 19:43:13 +0200 (WET)
From: Andris Pavenis <pavenis AT lanet DOT lv>
To: djgpp-workers AT delorie DOT com
cc: Robert Hoehne <robert DOT hoehne AT gmx DOT net>
Subject: dbgcom.c and SIGINT
Message-ID: <Pine.A41.4.05.9901071917510.48518-100000@ieva01.lanet.lv>
MIME-Version: 1.0
Reply-To: djgpp-workers AT delorie DOT com

Hi!

I tried to study why any DJGPP debugger (or program being 
debugged) with exceptions support added to dbgcom.c (see recent
posts to this mailing list for source) sometimes hangs after 
I resume execution of program after SIGINT. I tried FSDB,
GDB-4.17 and RHGDB-1.4.7. Final tests were done with RHGDB-1.4.7
under DOSEMU-0.99.5 (Linux-2.2.0-pre4)

I saw the same behaviour with gdb from gdb416b.zip where exceptions
were also supported (strange but true).

I tried to write some simple test program but was not able to reproduce
this problem. Normally I used some text mode application that were written
for real calculations and I can give it rather long work, so I can
interrupt it also many times.

Under DOS session (Win95) it's difficult to see anything more after
program (or debugger) is frozen: interrupts ENABLED, no more reaction
to Ctrl-C and no more activity from program.

Therefore I switched to DOSEMU (xdos) under Linux as I can run dosdebug
from terminal and see what debugger or program is doing. No source level
debugging available but anyway it was possible to get somo info.

The result was that my application falls into infinite loop in
hypot() (from libc.a) that is told in source to require only 3 
iterations. As there is no memory access in that loop then of course    
Ctrl-C does not work.

The only question is why this happens as I never saw such problem
in normal use of this application (It's often used not only by me but
also by other poeple). Also such problem could appear in my code but
not inside hypot(). One more problem is that I cannot inspect FP
registers from dosdebug. 

Main things I should suspect (as I think): 
   - saving and restoring FP state
   
I'll try to do some more research.

Andris

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019