Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Use the Application Verifier Tool & visual C++ 2008 to debug my app's resource leaks on windows server 2008 R2

151 views
Skip to first unread message

powah

unread,
Aug 8, 2009, 6:57:00 AM8/8/09
to
I setup the Application Verifier Tool 4.0 (x64) to monitor resource
leaks of my 64-bit application on windows server 2008 R2.
I use visual C++ 2008 to start debugging my application.
After stepping through my application for a while, my app has
triggered a breakpoint inside visual studio.
I press the "Break" button.
The call stack is as follows:
ntdll.dll!DbgBreakPoint()
vrfcore.dll!VerifierStopMesgeEx() + 0x772 bytes
vfbasics.dll!AVrfpCheckDllLeaks() + 0xbe bytes
ntdll.dll!RtlDeleteElementGenericTableAvl() + 0x53 bytes
vfbasics.dll!AVrfLeakDllUnload() + 0x54 bytes
ntdll.dll!AVrfDllUnloadNotification() + 0x97 bytes
ntdll.dll!LdrpUnloadDll() + 0x3bf1c bytes
ntdll.dll!LdrUnloadDll() + 0x4a bytes
KernelBase.dll!FreeLibrary() + 0x25 bytes
> login.exe!UnloadDynamicLibrary(HINSTANCE__ * libHandle=0x0000000180000000) Line 129 C++
login.exe!SecurityBridge::Disconnect() Line 684 C++
login.exe!SecurityDisconnect() Line 86 C++
login.exe!main(int argc=6, char * * argv=0x0000000006166f60) Line
318 C++
login.exe!__tmainCRTStartup() Line 586 + 0x19 bytes C
login.exe!mainCRTStartup() Line 403 C
kernel32.dll!BaseThreadInitThunk() + 0xd bytes
ntdll.dll!RtlUserThreadStart() + 0x21 bytes


The output is:
**********************************************************************************************************
'login.exe': Loaded 'C:\temp\137_vs2008_sdk2008\12\viper_vob\login
\Debug_Win_x64\login.exe', Symbols loaded.
'login.exe': Loaded 'C:\Windows\System32\ntdll.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\verifier.dll', Symbols loaded
(source information stripped).
Page heap: pid 0xF6C: page heap enabled with flags 0x3.
AVRF: login.exe: pid 0xF6C: flags 0x80E43027: application verifier
enabled
'login.exe': Loaded 'C:\Windows\System32\vrfcore.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\vfbasics.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\kernel32.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\KernelBase.dll', Symbols
loaded (source information stripped).
'login.exe': Loaded 'C:\Windows\System32\advapi32.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\msvcrt.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\sechost.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\rpcrt4.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\winsxs
\amd64_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_737233ca1c100ce5\msvcr90d.dll',
Symbols loaded.
'login.exe': Loaded 'C:\Program Files\myprog\security.dll', Symbols
loaded.
'login.exe': Loaded 'C:\Windows\System32\wsock32.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\ws2_32.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\nsi.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\user32.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\gdi32.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\lpk.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\usp10.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\imm32.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\msctf.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\version.dll', Symbols loaded
(source information stripped).
'login.exe': Unloaded 'C:\Windows\System32\version.dll'
'login.exe': Loaded 'C:\Windows\System32\mswsock.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\version.dll', Symbols loaded
(source information stripped).
'login.exe': Unloaded 'C:\Windows\System32\version.dll'
'login.exe': Loaded 'C:\Windows\System32\WSHTCPIP.DLL', Symbols loaded
(source information stripped).
The thread 'Win64 Thread' (0xf78) has exited with code 0 (0x0).
'login.exe': Loaded 'C:\Windows\System32\nlaapi.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\dnpi.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\winrnr.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\NapiNSP.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\FWPUCLNT.DLL', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\radhlp.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\netapi32.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\netutils.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\srvcli.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\wkscli.dll', Symbols loaded
(source information stripped).
'login.exe': Unloaded 'C:\Windows\System32\netapi32.dll'
'login.exe': Unloaded 'C:\Windows\System32\wkscli.dll'
'login.exe': Unloaded 'C:\Windows\System32\srvcli.dll'
'login.exe': Unloaded 'C:\Windows\System32\netutils.dll'
'login.exe': Loaded 'C:\Windows\System32\cryptsp.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\renh.dll', Symbols loaded
(source information stripped).
'login.exe': Loaded 'C:\Windows\System32\cryptbase.dll', Symbols
loaded (source information stripped).


=======================================
VERIFIER STOP 0000000000000901: pid 0xF6C: A HANDLE was leaked.

00000000000001D0 : Value of the leaked handle. Run !htrace <handle>
to get additional information about the handle if handle tracing is
enabled.
00000000001A82E0 : Address to the allocation stack trace. Run dps
<address> to view the allocation stack.
0000000002410FE0 : Address of the owner dll name. Run du <address> to
read the dll name.
0000000180000000 : Base of the owner dll. Run .reload <dll_name> =
<address> to reload the owner dll. Use 'lm' to get more information
about the loaded and unloaded modules.


=======================================
This verifier stop is continuable.
After debugging it use `go' to continue.

=======================================

login.exe has triggered a breakpoint


The program '[3948] login.exe: Native' has exited with code 0 (0x0).

**********************************************************************************************************


The source code which triggered the breakpoint is:
int UnloadDynamicLibrary( HINSTANCE libHandle )
{
FreeLibrary(libHandle);
//...


What steps should I do to find out what is wrong and fix this bug?
How to use VC++ to run !htrace <handle> to get additional information
about the handle?
How to use VC++ to enable handle tracing?

0 new messages