2017-05-11 1 views
0

를 유출했다, 나는 발견 그 말씀을 가까이에서 나는 다음과 같은 중지 얻을 :응용 프로그램 검증 중지 : 내 VSTO 애드 중 하나를 디버깅하는 응용 프로그램 검증 및 windbg를를 사용하는 중 HKEY은

VERIFIER STOP 00000902: pid 0x3F1C: An HKEY was leaked. 

00000632 : Value of the leaked HKEY. 
0422EA9C : Address to the allocation stack trace. Run dps <address> to view the allocation stack. 
1D3F6FE8 : Address of the owner dll name. Run du <address> to read the dll name. 
74040000 : 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. 

가장 좋은 방법은 무엇 이 정류장의 원인을 알아 내기 위해서? 내가 dps 0422EA9C

을했고, 다음이 반환 된 조언에 따라

: 나는 응용 프로그램 검증/WinDbg를 실행하면

0422ea9c 0423f164 
0422eaa0 0000e001 
0422eaa4 001c0000 
0422eaa8 740f3da0 vfbasics!AVrfpRegOpenKeyW+0xb0 
0422eaac 74041e54 oledlg!CStringCache::Init+0x47 
0422eab0 74041b51 oledlg!DllMain+0x2e 
0422eab4 74041869 oledlg!_CRT_INIT+0x26d 
0422eab8 7415c66d verifier!AVrfpStandardDllEntryPointRoutine+0x99 
0422eabc 741c95fa vrfcore!VfCoreStandardDllEntryPointRoutine+0x12a 
0422eac0 740e7904 vfbasics!AVrfpStandardDllEntryPointRoutine+0xa4 
0422eac4 77698d04 ntdll!LdrpCallInitRoutine+0x14 
0422eac8 7769c23d ntdll!LdrpRunInitializeRoutines+0x26f 
0422eacc 7769aeb5 ntdll!LdrpLoadDll+0x453 
0422ead0 7769afcc ntdll!LdrLoadDll+0xaa 
0422ead4 740e7d2d vfbasics!AVrfpLdrLoadDll+0x5d 
0422ead8 75072ca8 KERNELBASE!LoadLibraryExW+0x1f7 
0422eadc 74e548f4 kernel32!LoadLibraryW+0x11 
0422eae0 741a6871 vstoee!DllGetClassObject+0x4320 
0422eae4 741a68a1 vstoee!DllGetClassObject+0x4350 
0422eae8 6b5bfca5 mso!Ordinal4378+0x8dc 
0422eaec 6ac85248 mso!MsoFLongSave+0xaa353 
0422eaf0 6a686ddd mso!Ordinal9769+0x60b 
0422eaf4 6a68667a mso!Ordinal1832+0x13b 
0422eaf8 6be22bbb wwlib!DllGetClassObject+0x5dbef 
0422eafc 6bdc7c2f wwlib!DllGetClassObject+0x2c63 
0422eb00 6bdc4a4b wwlib!FMain+0x253 
0422eb04 013815c4 winword+0x15c4 
0422eb08 01381558 winword+0x1558 
0422eb0c 74e5337a kernel32!BaseThreadInitThunk+0xe 
0422eb10 776992b2 ntdll!__RtlUserThreadStart+0x70 
0422eb14 77699285 ntdll!_RtlUserThreadStart+0x1b 
0422eb18 00000000 

그런 다음 du 1D3F6FE8

1d3f6fe8 "oledlg.dll" 

흥미롭게

을 반환 없는 단어 위에 내 addin로드 아직도 나는 멈추지 :

APPLICATION_VERIFIER_LEAK_ALLOCATION (900) 
A heap allocation was leaked. 
This stop is generated if the owner dll of the allocation was dynamically unloaded while owning resources. 
Arguments: 
Arg1: 0b7e2fb8, Address of the leaked allocation. Run !heap -p -a <address> to get additional information about the allocation. 
Arg2: 041495f4, Address to the allocation stack trace. Run dps <address> to view the allocation stack. 
Arg3: 0c446fe4, Address of the owner dll name. Run du <address> to read the dll name. 
Arg4: 70b50000, 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. 
GetPageUrlData failed, server returned HTTP status 404 
URL requested: http://watson.microsoft.com/StageOne/winword_exe/15_0_4737_1003/559b7227/vrfcore_dll/10_0_15063_137/f4688fdb/80000003/00003809.htm?Retriage=1 

이것은 똑같은가요?

+2

위의 제안을 시도 했습니까? 'dps 0422EA9C' 등 ... – EdChum

+0

예. 내가 한 일은 ... 출력물과 무엇을해야할지 완전히 확신하지 못했습니다 ... –

+2

당신이 시도한 것을 포함하고, 제안 된 모든 명령의 출력물 등을 포함하십시오. 무엇을 했습니까 – EdChum

답변

1

위의 매우 유용한 코멘트는 내 추가 기능 코드가 아니라 VSTO 호스트 응용 프로그램과 관련된 문제라고 생각하도록 지적했습니다. 워드.

그래서 "Hello!"라는 레이블이있는 작업 창을 열어주는 버튼 리본이있는 간단한 VSTO 추가 기능을 만들었고 (이 기능은 WPF가 아님)이 시나리오에서도 여전히 더 애드 내가 다른 정지를 얻을로드되지 않은 종료에 HKEY 누출 ... 완성도를 들어

는 :

======================================= 
VERIFIER STOP 0000000000000300: pid 0x4008: Invalid handle exception for current stack trace. 

    00000000C0000008 : Exception code. 
    000000000F9DE670 : Exception record. Use .exr to display it. 
    000000000F9DE180 : Context record. Use .cxr to display it. 
    0000000000000000 : Not used. 


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

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

ModLoad: 711a0000 711c5000 C:\windows\SysWOW64\POWRPROF.DLL 


======================================= 
VERIFIER STOP 00000900: pid 0x4008: A heap allocation was leaked. 

    0BDCCFB8 : Address of the leaked allocation. Run !heap -p -a <address> to get additional information about the allocation. 
    041D9C54 : Address to the allocation stack trace. Run dps <address> to view the allocation stack. 
    0C36AFE4 : Address of the owner dll name. Run du <address> to read the dll name. 
    749C0000 : 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. 


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

!avrfAPPLICATION_VERIFIER_LEAK_ALLOCATION (900) 그래서 난이 응용 프로그램 검증 아무것도하지만 문제라고 생각하지 않습니다 제안합니다.

관련 문제