1
아래 프로그램은 내 프로그램이며 windbg를 사용하여 WaitForSingleObject() 호출에서 프로세스가 차단 될 때 호출 스택을 얻으려고합니다. 이상한 일은 프로세스가 블로킹 할 때, windbg는 아주 이상한 스택만을 출력합니다. I는 while(1)
행의 주석 경우 다음 WinDBG에서 프로세스가 함수에 _tmain
차단 인식 할 수 WaitForSingleObject()와 매우 이상한 windbg 동작
// process2.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "windows.h"
HANDLE g_hWriteEvent;
int _tmain(int argc, _TCHAR* argv[])
{
g_hWriteEvent = OpenEvent(
EVENT_ALL_ACCESS,
FALSE,
TEXT("WriteEvent")
);
if (g_hWriteEvent == NULL) {
printf("OpenEvent error (%d)\n", GetLastError());
return 0;
}
// while (1);
WaitForSingleObject(g_hWriteEvent, INFINITE);
return 0;
}
wow64cpu!TurboDispatchJumpAddressEnd+0x690 wow64cpu!TurboDispatchJumpAddressEnd+0x484 wow64!Wow64SystemServiceEx+0x1ce wow64!Wow64LdrpInitialize+0x429 ntdll!RtlResetRtlTranslations+0x1b08 ntdll!RtlResetRtlTranslations+0xc63 ntdll!LdrInitializeThunk+0xe참고.
감사합니다. Bin
64 비트 OS에서 실행되는 Wow64 32 비트 프로세스 인 것처럼 보입니다. 64 비트 Windbg를 32 비트 Windbg가 아닌 프로세스에 연결하십시오. –
고마워, 정말 문제 야! 32 비트 스위치 명령을 실행 한 후 백 트레이스가 올바르게되었습니다! ! wow64exts.sw –