My Qt 프로그램 (g ++ 4.4.0)이 나에게 Microsoft Visual C++ 런타임 라이브러리 오류를 제공합니다. "이 응용 프로그램이 런타임에 비정상적으로 종료되도록 런타임을 요청했습니다." 하지만 디버거에서 실행할 때 오류 메시지가 나타나지 않습니다. 누가 충돌에 대한 정보를 얻을 수있는 방법을 알고 있습니까? 메시지 상자에는 확인 버튼이 있습니다."이 응용 프로그램은 비정상적인 방식으로 런타임을 종료하도록 런타임을 요청했습니다."
편집자 : Wimmel의 조언에 따라 디버거에 연결했습니다. ThreadID 1과 3을 가진 두 개의 스레드가 있습니다. 스택은 다음과 같습니다.
Level Function File Line Address
0 VTagOutput C:\Windows\syswow64\user32.dll 0 0x7529438d
1 VTagOutput C:\Windows\syswow64\user32.dll 0 0x7529438d
2 USER32!EmptyClipboard C:\Windows\syswow64\user32.dll 0 0x752a2674
3 ?? 0
Level Function File Line Address
0 ntdll!LdrFindResource_U C:\Windows\SysWOW64\ntdll.dll 0 0x76f5000d
1 ntdll!LdrSetAppCompatDllRedirectionCallback C:\Windows\SysWOW64\ntdll.dll 0 0x76fdfabe
2 ?? 0 0x7b9609b5
3 ?? 0
아마도 두 번째 스레드가 오류 메시지를 표시하고 있습니까? 첫 번째는 조금 이상합니다. 상위 두 줄은 동일합니다. 내 코드에는 TagOutput
이라는 이름이 없으며 Qt도 내가 말할 수있는 한 아무것도 가지고 있지 않습니다.
은 아마 당신은 확인을 클릭하기 전에 디버거를 연결하고, 오류가 어디에서 오는지 볼 수있는 모든 스레드의 스택 프레임을 볼 수 있습니다. – wimh
표시되는 모든 기호는 시스템 DLL에서 온 것입니다. 빌드에 디버그 정보를 포함 시켰습니까? –
@Alan : 예. 나는 그 프로그램이 이미 사라 졌다고 생각하는데, 이것은 단지 시스템의 오류보고 메커니즘 일 뿐이다. – TonyK