2011-05-11 9 views
-1

내 게임 엔진에서 Windows 7 32 비트 충돌 문제가 발생했습니다. 그것은 Windows XP에서 32 비트, 내 개발 기계입니다 어떤 충돌없이 실행됩니다. 나는 엔진의 디버그 빌드를 컴파일하고, 이것은 내가 테스터로부터받은 크래시 덤프에서 생성 된 일부 출력 : 나는 이러한 예외를 많이 있었다Windows 7에서 Windows dll의 중단 점 예외

Microsoft (R) Windows Debugger Version 6.11.0001.404 X86 
Copyright (c) Microsoft Corporation. All rights reserved. 


Loading Dump File [E:\Perilous Hearts\debug\perilous_hearts.DMP] 
User Mini Dump File with Full Memory: Only application data is available 

Symbol search path is: E:\Perilous Hearts\debug 
Executable search path is: 
Windows 7 Version 7600 MP (4 procs) Free x86 compatible 
Product: WinNt, suite: SingleUserTS 
Machine Name: 
Debug session time: Wed May 11 20:04:24.000 2011 (GMT+2) 
System Uptime: 0 days 1:57:58.550 
Process Uptime: 0 days 0:01:16.000 
................................................................ 
.......... 
Loading unloaded module list 
..... 
eax=00000000 ebx=0012f088 ecx=00000000 edx=00000000 esi=00000011 edi=6c350dd8 
eip=776f6344 esp=0012f028 ebp=0012f080 iopl=0   nv up ei pl zr na pe cy 
cs=001b ss=0023 ds=0000 es=0000 fs=003b gs=0000    efl=00000247 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntdll.dll - 
ntdll!KiFastSystemCallRet: 
776f6344 c3    ret 
0:000> |* !analyze -v -f 
******************************************************************************* 
*                    * 
*      Exception Analysis         * 
*                    * 
******************************************************************************* 

*** ERROR: Symbol file could not be found. Defaulted to export symbols for KERNELBASE.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for imm32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for user32.dll - 
*** WARNING: Unable to verify checksum for perilous_hearts.exe 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for kernel32.dll - 
***** OS symbols are WRONG. Please fix symbols to do analysis. 

************************************************************************* 
***                 *** 
***                 *** 
*** Your debugger is not using the correct symbols     *** 
***                 *** 
*** In order for this command to work properly, your symbol path *** 
*** must point to .pdb files that have full type information.  *** 
***                 *** 
*** Certain .pdb files (such as the public OS symbols) do not  *** 
*** contain the required information. Contact the group that  *** 
*** provided you with these symbols if you need this command to *** 
*** work.               *** 
***                 *** 
*** Type referenced: ntdll!_PEB         *** 
***                 *** 
************************************************************************* 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for minHook.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for acatts.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for nvdaHelperRemote.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for IAccessible2Proxy.dll - 
*** WARNING: Unable to verify checksum for Hlas.dll 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for Hlas.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ntvdm.exe - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for AcaTtsSapi5.dll - 
*** WARNING: Unable to verify checksum for gwmhook.dll 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for gwmhook.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for HLW32.DLL - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for dsound.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for sapi.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for msdmo.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for sfc_os.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for sfc.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for uiautomationcore.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for dinput8.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for midimap.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for msacm32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for msacm32.drv - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for AudioSes.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ksuser.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for wdmaud.drv - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for winmm.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for wkscli.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for netutils.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for netapi32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for winspool.drv - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for oleacc.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for comctl32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for MMDevAPI.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for powrprof.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for wtsapi32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for hid.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for avrt.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for propsys.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for winsta.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for rsaenh.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for cryptsp.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for srvcli.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for apphelp.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for CRYPTBASE.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for sxs.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for RpcRtRemote.dll - 
*** ERROR: Module load completed but symbols could not be loaded for profapi.dll 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for msasn1.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for wintrust.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for devobj.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for cfgmgr32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for crypt32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for oleaut32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ws2_32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for msvcrt.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for msctf.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for shlwapi.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for ole32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for setupapi.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for comdlg32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for gdi32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for rpcrt4.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for shell32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for advapi32.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for usp10.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for lpk.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for nsi.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for psapi.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for clbcatq.dll - 
*** ERROR: Symbol file could not be found. Defaulted to export symbols for sechost.dll - 
************************************************************************* 
***                 *** 
***                 *** 
*** Your debugger is not using the correct symbols     *** 
***                 *** 
*** In order for this command to work properly, your symbol path *** 
*** must point to .pdb files that have full type information.  *** 
***                 *** 
*** Certain .pdb files (such as the public OS symbols) do not  *** 
*** contain the required information. Contact the group that  *** 
*** provided you with these symbols if you need this command to *** 
*** work.               *** 
***                 *** 
*** Type referenced: IMAGE_NT_HEADERS32       *** 
***                 *** 
************************************************************************* 
************************************************************************* 
***                 *** 
***                 *** 
*** Your debugger is not using the correct symbols     *** 
***                 *** 
*** In order for this command to work properly, your symbol path *** 
*** must point to .pdb files that have full type information.  *** 
***                 *** 
*** Certain .pdb files (such as the public OS symbols) do not  *** 
*** contain the required information. Contact the group that  *** 
*** provided you with these symbols if you need this command to *** 
*** work.               *** 
***                 *** 
*** Type referenced: kernel32!pNlsUserInfo       *** 
***                 *** 
************************************************************************* 
************************************************************************* 
***                 *** 
***                 *** 
*** Your debugger is not using the correct symbols     *** 
***                 *** 
*** In order for this command to work properly, your symbol path *** 
*** must point to .pdb files that have full type information.  *** 
***                 *** 
*** Certain .pdb files (such as the public OS symbols) do not  *** 
*** contain the required information. Contact the group that  *** 
*** provided you with these symbols if you need this command to *** 
*** work.               *** 
***                 *** 
*** Type referenced: kernel32!pNlsUserInfo       *** 
***                 *** 
************************************************************************* 

FAULTING_IP: 
+26b952f019cdf74 
00000000 ??    ??? 

EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff) 
ExceptionAddress: 00000000 
    ExceptionCode: 80000003 (Break instruction exception) 
    ExceptionFlags: 00000000 
NumberParameters: 0 

FAULTING_THREAD: 000007fc 

DEFAULT_BUCKET_ID: WRONG_SYMBOLS 

PROCESS_NAME: perilous_hearts.exe 

ADDITIONAL_DEBUG_TEXT: 
Use '!findthebuild' command to search for the target build information. 
If the build information is available, run '!findthebuild -s ; .reload' to set symbol path and load symbols. 

FAULTING_MODULE: 776b0000 ntdll 

DEBUG_FLR_IMAGE_TIMESTAMP: 4a5bd98a 

ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached. 

EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid 

PRIMARY_PROBLEM_CLASS: WRONG_SYMBOLS 

BUGCHECK_STR: APPLICATION_FAULT_WRONG_SYMBOLS 

LAST_CONTROL_TRANSFER: from 6c3291dd to 776f6344 

STACK_TEXT: 
WARNING: Stack unwind information not available. Following frames may be wrong. 
0012f080 6c3291dd 0266000c 6c3291dd 6c350dd8 ntdll!KiFastSystemCallRet 
0012f0a0 759b1abf 00230000 6021a558 75c161dd AcXtrnal+0x91dd 
0012f0dc 75f82868 0266000c 00000102 00285360 KERNELBASE!LocalLock+0x29 
0012f0f0 75f82801 002e04eb 00000001 0012f12c imm32!ImmLockIMC+0x76 
0012f100 75f84a19 002e04eb 00000102 004eb714 imm32!ImmLockIMC+0xf 
0012f12c 75c36b11 000801e8 04050405 00000025 imm32!ImmProcessKey+0x31 
0012f154 776f627e 0012f16c 00000014 0012ff78 user32!GetLastActivePopup+0xc5 
0012f1a8 75c12fdc 004eb714 000801e8 00000000 ntdll!KiUserCallbackDispatcher+0x2e 
0012f1d4 0047f1cb 004eb714 000801e8 00000000 user32!PeekMessageA+0x12a 
0012f1f0 00480bee 0044cb6e 01c27f28 004eab68 perilous_hearts!poll_window+0x7b [e:\c++ tests\bgt\main.cpp @ 113] 
0012f1f4 0044cb6e 01c27f28 004eab68 01c4a9e8 perilous_hearts!LineCallback+0xe [e:\c++ tests\bgt\main.cpp @ 572] 
0012f224 004367b2 01c27f28 004eab68 01c27fa8 perilous_hearts!asCScriptEngine::CallGlobalFunction+0x1e [e:\c++ tests\bgt\angelscript\source\as_scriptengine.cpp @ 3140] 
0012f238 00438310 01c28058 01c27f28 0012f2fc perilous_hearts!asCContext::CallLineCallback+0x22 [e:\c++ tests\bgt\angelscript\source\as_context.cpp @ 3780] 
0012f2fc 0043a7c8 00000006 75c5ea71 ffffffff perilous_hearts!asCContext::ExecuteNext+0x9d0 [e:\c++ tests\bgt\angelscript\source\as_context.cpp @ 2033] 
0012f314 00466ee9 0012f72c 0012f7b8 00480be0 perilous_hearts!asCContext::Execute+0x1b8 [e:\c++ tests\bgt\angelscript\source\as_context.cpp @ 983] 
0012f72c 0047c505 75c1147a 75c0e18a 00400000 perilous_hearts!execute+0x119 [e:\c++ tests\bgt\main.cpp @ 1035] 
0012fd40 0047c5c3 0047c6be 00000000 00232027 perilous_hearts!RunApplication+0xb15 [e:\c++ tests\bgt\main.cpp @ 929] 
0012fd44 0047c6be 00000000 00232027 00000cc0 perilous_hearts!run_script+0x93 [e:\c++ tests\bgt\main.cpp @ 1259] 
0012feb0 0047cbdc 00000000 fffffffe 00000000 perilous_hearts!main_game+0x4e [e:\c++ tests\bgt\main.cpp @ 1367] 
0012fef8 00492973 00400000 00000000 00232027 perilous_hearts!WinMain+0x3dc [e:\c++ tests\bgt\main.cpp @ 1551] 
0012ff88 75ef1194 7ffd5000 0012ffd4 7770b429 perilous_hearts!__tmainCRTStartup+0x113 [f:\dd\vctools\crt_bld\self_x86\crt\src\crt0.c @ 263] 
0012ff94 7770b429 7ffd5000 7700c664 00000000 kernel32!BaseThreadInitThunk+0x12 
0012ffd4 7770b3fc 004929de 7ffd5000 00000000 ntdll!RtlInitializeExceptionChain+0x63 
0012ffec 00000000 004929de 7ffd5000 00000000 ntdll!RtlInitializeExceptionChain+0x36 


STACK_COMMAND: ~0s; .ecxr ; kb 

FOLLOWUP_IP: 
AcXtrnal+91dd 
6c3291dd 8b1d0c11326c mov  ebx,dword ptr [AcXtrnal+0x110c (6c32110c)] 

SYMBOL_STACK_INDEX: 1 

SYMBOL_NAME: AcXtrnal+91dd 

FOLLOWUP_NAME: MachineOwner 

MODULE_NAME: AcXtrnal 

IMAGE_NAME: AcXtrnal.dll 

BUCKET_ID: WRONG_SYMBOLS 

FAILURE_BUCKET_ID: WRONG_SYMBOLS_80000003_AcXtrnal.dll!Unknown 

WATSON_STAGEONE_URL: http://watson.microsoft.com/StageOne/perilous_hearts_exe/0_0_0_0/4dc830b1/unknown/0_0_0_0/bbbbbbb4/80000003/00000000.htm?Retriage=1 

Followup: MachineOwner 

, 나는 간단하게 할 수 없습니다 왜 그들이 발생하는지 파악하십시오. 분명히 어딘가에서 뭔가 잘못된 일을하고 있지만 Xp에서 재생산하는 것은 불가능한 것처럼 보입니다. vectored 예외 핸들러를 설정하여이 특정 예외를 찾은 다음 트리거 된 경우 계속 실행하려고 시도했지만 거기에는 운이 없습니다.

엔진은 컴파일러 설정에서/Zi로 컴파일되지만 링커에/OPT : REF 명령이 제공됩니다.

부수적으로 누군가가 나와 함께 더 깊이 들어가기 위해 시간을 보내고 싶다면 재정적으로 그 시간을 감당할 수있을 것입니다.

미리 도움을 청하십시오!

종류와 관련,

필립 Bennefall

+0

정확히 무엇이 질문입니까? –

+0

기본적으로 이러한 충돌을 피할 수있는 방법은 무엇입니까? 저는 지금 약 3 개월 동안 그들과 싸우고 있었고, 저의 삶에 왜 그들이 일어나고 있는지, 또는 어떻게 고치거나 예방하는지 알 수 없었습니다. –

+0

다른 사람들이 언급했듯이, 귀하의 정보에서 OS 기호가 없다는 사실은 그 일이 무엇이 일어나고 있는지를 훨씬 덜 확신하게 만듭니다. OS 기호로 다시 게시 할 수 있습니까? 이 테스터는 실제로 접촉 가능합니까? 스택은 IME (다양한 아시아 및 기타 국가에서 사용되는 입력 윈도우)를 신뢰할 수있는 것처럼 보입니다. 밖에있는 타사 IME는 다양합니다. 첫 번째 단계로서, IME가 제거 된 (또는 적어도 비활성화 된) 테스터 용으로 재생되는지 확인하십시오. IME를 사용하는 XP 또는 Win7에서 문제가 재현되는지 확인할 수도 있습니다. –

답변

1

이 AcXtrnal.dll에 대한 상징이 없어이 크래시 덤프가 도움이되지 않는, 그래서 스택이 제대로 걸어되지 않을 가능성이 높습니다.

AcXtrnl.dll은 Windows 용 응용 프로그램 호환성 DLL이며 일반적으로 실행 파일의 속성 대화 상자의 호환성 탭에서 "호환성 모드에서이 프로그램 실행"을 선택한 경우에만 프로세스에서로드됩니다.

Windows 7 테스터의 경우이 설정을 선택하면 프로그램을 올바르게 실행할 수 있습니다.

Application Compatibility Toolkit (추가 정보 here)을 다운로드하고 함께 프로그램을 실행하여 Windows XP 이상 버전의 Windows와의 잠재적 인 호환성 문제를 진단하는 것이 좋습니다.

+0

이 팁을 주셔서 감사 드리며, 저는이 툴킷을 알지 못했습니다. 필요한 파일을 다운로드했으며 이제 프로그램에 익숙해지기 시작했습니다. 나는 궁금하지만, 왜 Windows XP에서 Windows 7이 중단 점을 발행 할 때 Windows 7에서 문제가 발생합니까? 심지어 중단 점이 kernel32의 Sleep 함수처럼 사소한 것으로 트리거되었습니다. 첫 번째 충동은 예외를 무시하려고 시도했지만 vectored 예외 처리기는 내 프로세스가 부모 인 경우에도 외부 모듈에서 발생했을 때이를 잡아 내지 못하는 것 같습니다. –