アプリケーションベリファイアでデバッグしようとするまで、私のアプリは正常に動作していました。そして問題がPantheiosで「bailout.c」ファイル内にあるように見えます:パンテシオでのファーストチャンス例外
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();
とも呼ばれます。私は、Visual Studio 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