Invalid Address specified to RtlFreeHeap 
Author Message
 Invalid Address specified to RtlFreeHeap

When debugging with VC 4.2 (on NT 4.0) I get the following.
First, a message in the debug output window like

HEAP[cv_tcl.exe]: Heap block at 17444d0 modified at 1746284 past requested
size of 1dac

Then a popup notice saying something like

User breakpoint called from code at 0x77f760e4

and it breaks at an "int 3" at the specified address.
This address is suspiciously high; I suspect this may not be
in real code, although the program kind of works.

When I continue, I get another message in the debug output window like

HEAP[cv_tcl.exe]: Invalid Address specified to RtlFreeHeap( a50000, 17444d8
)

This is in a loop so these things happen several times, repeated in this
order. The second value in the second message always seems to be
0x8 greater than the first value in the first message.

I can't find anything in the online documentation about RtlFreeHeap.
My program is compiled for debug.

(My program is a Tcl interpreter extended with commands specific to my
application. The errors happen between calls to my commands where I have
real breakpoints, apparently in the Tcl code -- although actually there are
other commands in
between that I have trouble setting breakpoints on because they are in a
DLL
that gets loaded by the Tcl load command -- but these are definitely not
the cause of the "int 3" breaks.)

I am new to NT and VC. Can anyone shed light on any of this?

Bob Sasseen
Aptex Software Inc.



Tue, 21 Sep 1999 03:00:00 GMT  
 Invalid Address specified to RtlFreeHeap

Bob,

 > HEAP[cv_tcl.exe]: Heap block at 17444d0 modified at 1746284 past requested
 > size of 1dac

You ran past the end of a memory block when writing.

 > User breakpoint called from code at 0x77f760e4

A "user breakpoint" is an INT 3. It just causes the de{*filter*} to break
into your program at this point.

 > This address is suspiciously high; I suspect this may not be
 > in real code, although the program kind of works.

It is real code -- it's just in one of the system DLLs. If I were you,
I'd get Boundschecker (personal preference, there are other products
foing similar things) and let it loose on a debug build of your code.
The debug version of the VC4.2 RTL also has rudimentary overrun bug
detection, but nowhere near as sophisticated as Boundschecker's. You
can find a 15-day eval of Boundschecker at http://www.*-*-*.com/ .

Cheers,
Felix.

----------
If you post a reply, kindly refrain from emailing it, too.



Wed, 22 Sep 1999 03:00:00 GMT  
 
 [ 2 post ] 

 Relevant Pages 

1. "Invalid Address specified to RtlFreeHeap(..)"

2. Invalid Address specified to RtlFreeHeap (Debug in Win2000 Proffesional+SP3)

3. Invalid Address specified to RtlFreeHeap ...

4. Invalid Address specified to RtlFreeHeap( 80000, 859ce0 )

5. Invalid Address specified to RtlFreeHeap - Using release versions of a DLL in a debug version of an exe - Impossible?

6. Invalid Address specified to RtlValidateHeap in EXE Server

7. Invalid Address specified to RtlValidateHeap

8. HEAP[my.exe]: Invalid Address specified to RtlValidateHeap( 1940000, 1b73290 )

9. Invalid Address specified to RtlValidateHeap

10. Invalid Address specified to RtlValidateHeap

11. Invalid Address specified to RtlValidateHeap

12. Invalid Address specified to RtlValidateHeap (non-dll)

 

 
Powered by phpBB® Forum Software