Visual Studio를 사용하여 ATL 응용 프로그램을 디버깅하고 있습니다. 이 코드에 return TRUE
을 통해 단계 때내 OnCopyData에서 TRUE를 반환 할 때 왜 중단 점을 트리거 할 수 있습니까?
는 오류가 발생합니다
Windows가 foobar.exe에 중단 점을 트리거했습니다
BOOL CMainFrame::OnCopyData(CWnd* pWnd, COPYDATASTRUCT* pCopyDataStruct) { // Code snipped from here - maybe this causes stack/heap corruption? // I have a breakpoint here, if I step over (F10), AFX trace message // is shown (as below) return TRUE; }
이 같이있어 메시지 상자입니다.
이것은 foobar.exe 또는 로드 한 DLL 중 어느 한 버그를 나타내는 힙의 손상에 기인 할 수있다.phonejournal.exe 에 포커스가있는 동안 F12 키를 누름으로써 발생할 수 있습니다.
출력 창이 더 많은 진단 정보가있을 수 있습니다.
메시지가 약간 애매하고 자세한 정보를 얻으려면 어떤 도구를 사용할 수 있는지 궁금합니다. atltrace.h
에서 AtlTraceVU
에 대한 호출에 디버거 나누기 :
inline void __cdecl CTrace::TraceV(const char *pszFileName, int nLine,
DWORD_PTR dwCategory, UINT nLevel, LPCWSTR pszFmt, va_list args) const
{
AtlTraceVU(m_dwModule, pszFileName, nLine, dwCategory, nLevel, pszFmt, args);
}
니스, 고마워! 나는 이것을 아직 시도하지 않았지만 이것을 할 때 대답으로 받아 들일 것입니다. –
아직 시도하지는 않았지만 힙 손상 (시행 착오를 통해 발견 됨)이 밝혀졌지만 다음 번에 Application Verifier를 기억할 것입니다. –