Re: Error Return Code?
- Posted by Euman <euman at bellsouth.net> Feb 01, 2001
- 597 views
> Euman writes: > > Why then does MemCheck and BoundsChecker > > report Resource Leaks because DLL's aren't > > being free'd under Win32Lib? > > Robert write: > What does the report say exactly? > Are those tools available on the Web somewhere? > > I've had no complaints of dlls not being freed. > What confuses me is that Euphoria has openDLL and Robert say's these DLL's are unLoaded on program exit (I dont think so Robert) My Guess is that Win32Lib will have to have FreeLibrary Added after WinMain( ) to compensate. Keep in Mind that I was told, in future versions of Win32Lib that FreeLibrary would be put in, unless Robert want's to fix this. Not sure about this HeapAlloc (below) though. I left *ALOT* out of this for size sake, the original is 708k This Report was Generated by MemCheck 5.0 A trial version of MemCheck is here: BoundsChecker also output nearly Identicle info. My copy came with Borland C++ Builder 5.0 A trial version can be D/L'd from: http://www.numega.com/ Euman Overwrite detected on HeapAlloc block * Corruption Detected * Current location: HeapFree in WOTIDY7_FULL.EXE <see stack trace> More info: Block address: LPVOID 1C22070h Detailed Info: Overwrite condition detected on an allocated block referenced in the HeapFree <see stack trace>. The guard bytes of block 01C22070h, size 26, have been changed, resulting in data and/or heap corruption. The block was allocated by a HeapAlloc <see stack trace> in module WOTIDY7_FULL.EXE. To pinpoint the location of the actual corruption, use BugCrusher mode or the mc_check_buffers() API. Parameters: hHeap is HANDLE 1B20000h (28442624) Number of free blocks: 2 Number of used blocks: 42 Memory allocated in heap: 908 bytes dwFlags is DWORD 0h (0) lpMem is LPVOID 1C22070h (29499504) Heap Block is USED Size: 32 Stack Trace: kernel32.DLL! HeapFree WOTIDY7_FULL.EXE! ___CPPdebugHook + 4EAEh WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 69D80h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 6AFF3h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 62890h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 62A48h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 1D3E5h Thread ID: FFF167C7h Prio: THREAD_PRIORITY_NORMAL (0) More information about this resource: Value: LPVOID 1C22070h (internal type: PHEAP_BLOCK_WIN) Size: 1Ah (26) bytes Block lies in a Windows heap. Heap block status: USED Allocation #512 Allocated with HeapAlloc * Free with HeapFree * Heap Block is USED Size: 32 Created by HeapAlloc in WOTIDY7_FULL.EXE <see stack trace> Stack Trace: kernel32.DLL! HeapAlloc WOTIDY7_FULL.EXE! ___CPPdebugHook + 4EAEh WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 6A021h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 6A9FAh WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 62441h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 62A48h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 1D3E5h Heap Block is USED Size: 32 Library loaded: user32.dll * Runtime Info * Current location: LoadLibraryA in WOTIDY7_FULL.EXE <see stack trace> More info: Module handle: BFF50000h Detailed Info: No more info available. Stack Trace: kernel32.DLL! LoadLibraryA WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 79DCAh WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 7A61Ah WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 649B3h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + E5Ah WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 8815Ah No owning module for EIP 0h, trace ended. Thread ID: FFF167C7h Prio: THREAD_PRIORITY_NORMAL (0) Library loaded: kernel32.dll <SNIP> save space..........ALMOST SAME INFO as above. Library loaded: user32.dll <SNIP> Library loaded: riched20.dll <SNIP> Library loaded: comctl32.dll <SNIP> Library loaded: gdi32.dll <SNIP> ** AND After Normal Program Termination No FreeLibrary for LoadLibraryA * Resource Leak * More info: Library Name: riched20.dll Detailed Info: The resource named 'riched20.dll' was not freed. HMODULE value 48000000h (1207959552) was allocated by LoadLibraryA <see stack trace> in WOTIDY7_FULL.EXE. Use FreeLibrary to release it when you're done. Thread ID: FFF167C7h Prio: THREAD_PRIORITY_NORMAL (0) More information about this resource: Resource name: riched20.dll Value: HMODULE 48000000h Allocation #6 Allocated with LoadLibraryA Free with FreeLibrary Module name: "C:\WINDOWS\SYSTEM\RICHED20.DLL" Created by LoadLibraryA in WOTIDY7_FULL.EXE <see stack trace> Stack Trace: kernel32.DLL! LoadLibraryA WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 79DCAh WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 7A61Ah WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 649B3h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 21D86h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + B2B4h WOTIDY7_FULL.EXE! __GetExceptDLLinfo + 8815Ah No owning module for EIP 0h, trace ended. Module name: "C:\WINDOWS\SYSTEM\RICHED20.DLL" No FreeLibrary for LoadLibraryA * Resource Leak * More info: Library Name: shell32.dll <SNIP> save space..........ALMOST SAME INFO as above. No FreeLibrary for LoadLibraryA * Resource Leak * More info: Library Name: comctl32.dll Detailed Info: The resource named 'comctl32.dll' was not freed. <SNIP> No FreeLibrary for LoadLibraryA * Resource Leak * More info: Library Name: gdi32.dll Detailed Info: The resource named 'gdi32.dll' was not freed. <SNIP> No FreeLibrary for LoadLibraryA * Resource Leak * More info: Library Name: user32.dll Detailed Info: The resource named 'user32.dll' was not freed. <SNIP> No FreeLibrary for LoadLibraryA * Resource Leak * More info: Library Name: kernel32.dll Detailed Info: The resource named 'kernel32.dll' was not freed. <SNIP> Number of API failures: 154 Number of Extent errors: 0 Number of GDI errors: 0 Number of general errors: 0 Number of guard byte overwrite errors: 1 Number of invalid parameter errors: 366 ** Not include because of size Number of Windows resource leaks: 22 ** All not included because of size 'Euman' Number of memory leaks: 0 ** 0 Because of Euphoria's Runtime ** No way I can check this. Number of transfer destination overwrite errors: 0