0

他の誰かのコードをデバッグしようとしていますが、アプリケーションをデバッグ モードで約 12 時間実行した後、で最初の例外が発生し0x400795f4 in XXXX Cx00000FD Stack Overflowます。この例外でブレークをオンにしましたが、そこでブレークしません。それが発生するまでに、アプリケーションは関数であるファイルatlosapice.h line 906で実行を停止しました。wvsprinfw

これを見つけようとするために他に何かできることはないかと考えていました。デバッグしようとしているアプリケーションは、WinCE 6.0 で実行され、Visual Studio 2008 を使用しています。

4

1 に答える 1

1

printf() のような関数のアプリケーションを調べてください。NKDbgPrintfW()、RETAILMSG、DEBUGMSG、およびその他のデバッグ マクロを必ず含めてください。これらの各呼び出しの前後に、次のようなものを置きます。

printf( "++%s(%d)\n", __FILE__, __LINE__ );
printf( "some printf\n" ); // the printf already in the code
printf( "--%s(%d)\n", __FILE__, __LINE__ );

次に、出力ウィンドウを見て、例外の前に最後に出力されたものを確認します。

おそらく、printf が一部の項目に対して間違った書式指定子を指定したか、書式指定子が多すぎるか、書式指定子が不十分であることが原因です。

: _

long z = 'A';
printf("%c\n", z);  // undefined behavior
于 2013-09-26T14:58:20.027 に答える