Mail Archives: djgpp/2000/11/08/21:03:10
From: | dcasale AT my-deja DOT com
|
Newsgroups: | comp.os.msdos.djgpp
|
Subject: | My program hangs under RHIDE's debugger
|
Date: | Thu, 09 Nov 2000 01:35:47 GMT
|
Organization: | Deja.com - Before you buy.
|
Lines: | 45
|
Message-ID: | <8ucv1j$nff$1@nnrp1.deja.com>
|
NNTP-Posting-Host: | 199.249.234.30
|
X-Article-Creation-Date: | Thu Nov 09 01:35:47 2000 GMT
|
X-Http-User-Agent: | Mozilla/4.0 (compatible; MSIE 5.5; Windows 98)
|
X-Http-Proxy: | 1.1 x56.deja.com:80 (Squid/1.1.22) for client 199.249.234.30
|
X-MyDeja-Info: | XMYDJUIDdcasale
|
To: | djgpp AT delorie DOT com
|
DJ-Gateway: | from newsgroup comp.os.msdos.djgpp
|
Reply-To: | djgpp AT delorie DOT com
|
Okay, I'm back with a slightly different problem. Ignoring the
mysterious slowdown problem in my compression program for the moment,
I'm trying to track down the cause of a crash which happens on one
particular delete. I don't think it's this particular delete that's
causing the problem; I think I might have corrupted memory earlier in
the program execution.
I tried experimenting around with Nate Eldredge's YAMD (Yet Another
Malloc Debugger), but my program hung almost right at the beginning,
and didn't even get close to where the original crash occurs. Okay, I
thought, I'll try RHIDE's debugger and see if that gets me anywhere.
Well, no joy. The program hangs at the same point (my guess -- the
screen output is my clue). So I step through the code until the hang
occurs. It's happening right at this point in my code:
...
// Check to see if the INT 13 HD extensions are present...
if( ( (regs.x.flags & 1) == 0 ) && ( regs.x.bx == 0xAA55 ) )
{
regs.h.ah = 0x48;
regs.h.dl = PhysicalDriveNumber;
regs.x.si = __tb & 0x0f ;
regs.x.es = regs.x.ds = __tb >> 4 ;
pINT13DP->BufferSize = 0x1A;
dosmemput(pINT13DP,sizeof(*pINT13DP),__tb);
asm volatile ("pushf" : : );
__dpmi_int (0x13, ®s); /* call BIOS */ <--- hangs here
asm volatile ("popf" : : );
dosmemget (__tb, sizeof(*pINT13DP), pINT13DP);
if( (regs.x.flags & 1) == 0 )
...
I'm guessing that RHIDE's debugger might be using the transfer buffer
itself, thus overwriting what I just put there.
Any ideas?
Damon Casale, damon AT WRONG DOT redshift DOT com (remove the obvious)
Yeah, I might be able to get it to go a little faster. But first I
have to get it to stop crashing.
Sent via Deja.com http://www.deja.com/
Before you buy.
- Raw text -