Application Verifier를 사용하여 디버그를 시도 할 때까지 내 앱이 정상적으로 실행되고있었습니다. "잘못된 핸들이 지정되었습니다 ... 첫 번째 예외"를하고 문제가 Pantheios에서 "bailout.c"파일에있는 것으로 보인다Pantheios의 첫 번째 예외 예외
hFile = CreateFileA("logging-bailout.txt"
, GENERIC_WRITE
, 0
, NULL
, OPEN_ALWAYS
, 0
, NULL); <--- this is where it crashes, line 442
그리고 메시지 :
그 후 나는 시작하기First-chance exception at 0x7769f8cd in myapp.exe: 0xC0000008: An invalid handle was specified.
=======================================
VERIFIER STOP 0000000000000300: pid 0x3814: Invalid handle exception for current stack trace.
00000000C0000008 : Exception code.
00000000111DE950 : Exception record. Use .exr to display it.
00000000111DE460 : Context record. Use .cxr to display it.
0000000000000000 : Not used.
=======================================
This verifier stop is continuable.
After debugging it use `go' to continue.
=======================================
콘솔이 기록되기 전에 내가 Pantheios와 함께 가지고있는 예외 사항을 기록했는데 나는별로 신경 쓰지 않았다. 그러나 이제 Pantheios를 사용하여 로깅이 처음 발생했을 때 앱이 다운되면이 문제를 처리해야 할 때가되었지만 확실하지는 않습니다. 내 Pantheios 설정할 때
나는이 가이드를 다음했다 : 모든 파일에서 http://www.codeproject.com/Articles/27119/Using-Callback-Back-ends-with-the-Pantheios-Loggin
을 내가 가진 로깅 나는 소스 파일에서 다음 행이 있습니다
#include <pantheios/pantheios.hpp>
#include <pantheios/inserters/boolean.hpp>
#include <pantheios/inserters/integer.hpp>
#include <Shared/logs.h>
logs.h가 포함
를#include <pantheios/implicit_link/core.h>
#include <pantheios/implicit_link/fe.simple.h>
#include <pantheios/implicit_link/be.WindowsConsole.h>
로깅을 수행하기 전에 pantheios::init();
으로 전화하십시오. 난 비주얼 스튜디오 2010을 사용하고 있는데 "추가 종속성"에서 다음 LIB-파일을 포함하는
는 :
최초의 기회 :
$(PANTHEIOS_ROOT)\lib\pantheios.1.core.vc10.mt.debug.lib $(PANTHEIOS_ROOT)\lib\pantheios.1.be.WindowsConsole.vc10.mt.debug.lib $(PANTHEIOS_ROOT)\lib\pantheios.1.fe.simple.vc10.mt.debug.lib $(PANTHEIOS_ROOT)\lib\pantheios.1.util.vc10.mt.debug.lib
그러나, 내 모든 기록은 다음과 같습니다 myapp.exe에서 0x750bb9bc 예외 : Microsoft C++ 예외 : 메모리 위치 0x1822bda0에서 stlsoft :: winstl_project :: windows_exception ..
20120423-104817.497 : 로그 파일에 메시지를 쓰지 못했습니다. 주어진 메시지는 다음과 같습니다. [myapp.Qt.Framework.13424, 23/04/2012 10 : 48 : 17.496 a.m .; 디버그] : "일부 로깅"
그런
pantheios::log(pantheios::debug, "some logging");
를 호출, 내 모든 로깅 프로젝트와 같은 폴더에 "구제 금융"파일에 기록됩니다. 이것은 이전에는 효과가 있었지만 "To-do-list"에 큰 영향을주었습니다 (그러나 다른 것들보다 조금 더 아래에 있음).
이제 제 질문은 어떻게 수정합니까? 내가 찾을 수 있지만 성공하지 못한 모든 튜토리얼을 따라 갔다. 그리고 왜 Ms Application Verifier를 실행 한 후 내 앱이 이것을 더 이상 받아들이지 않기로 결정 했습니까? 말도 안돼.
그래, 나는 그것을 이제는 더 이상 추락하지 않았다. 그러나 읽을 수 없기 때문에 나는 로깅에서 그 메시지를 가질 수 없다. 나는 아직도 그것을 버려지는 방법을 이해할 수 없다. – chikuba
첫 번째 예외 메시지는 어떻게 커스텀 로그에 기록 될까? 모든 예외를 잡아서 기록하는 경우 어떤 예외가 발생했는지 파악하고 무시할 수 있습니다. 이상적인 해결책은 처음에'CreateFileA'를 호출 할 때 예외를 발생시키는 조건을 수정하는 것입니다. – Attila
은 예외를 기록하지 않지만 "20120327-112911.994 : 로그 파일에 메시지를 쓰지 못했습니다. 주어진 메시지는 다음과 같습니다." 메시지의 시작. – chikuba