找到堆栈溢出

时间:2013-09-25 15:54:40

标签: visual-c++ visual-studio-2008 windows-ce

我正在尝试调试其他人的代码,在调试模式下运行应用程序大约12个小时后,我在0x400795f4 in XXXX Cx00000FD Stack Overflow获得了第一次机会异常。我已经在此异常中打开了break,但它没有中断,当它发生时,应用程序已停止在atlosapice.h line 906函数wvsprinfw处运行。

我想知道是否还有其他任何我可以尝试找到的东西?我尝试调试的应用程序在WinCE 6.0上运行并使用Visual Studio 2008。

1 个答案:

答案 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