2013-09-25 105 views
0

我試圖調試別人的代碼,並在調試模式下運行應用程序約12小時後,我得到第一個機會例外0x400795f4 in XXXX Cx00000FD Stack Overflow。我在這個異常中打開了中斷,但它並沒有在那裏中斷,並且當它發生時,應用程序已經停止運行在文件atlosapice.h line 906,這是wvsprinfw函數。找到堆棧溢出

我想知道是否還有其他事情可以嘗試去找到?我嘗試調試的應用程序在WinCE 6.0上運行,並使用Visual Studio 2008.

+0

螺紋多應用或者單線程? –

回答

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爲某些項目指定了錯誤的格式說明符,太多的格式說明符或沒有足夠的格式說明符。

對於example

long z = 'A'; 
printf("%c\n", z); // undefined behavior