2013-05-16 97 views
1

我正在通过VS2008的JIT调试器查看未处理的异常。任何人都可以给我一些指针是怎么回事?调用堆栈没有指向代码中的任何位置。而且很确定代码试图捕获所有异常。VS2008 JIT调试调用堆栈只显示系统调用

msvcr90.dll!_crt_debugger_hook(int _Reserved=0) Line 65 
msvcr90.dll!_invoke_watson(const wchar_t* pszExpression=0x00000000, const wchar_t* pszFunction=0x00000000 .... 
msvcr90.dll!fgets(char* string=0x30ebf7c4, int count=15, _iobuf* str=0x00000000) Line 55 + 0x20 bytes 
MyProgram.exe!00443faf() 
[Frames below may be incorrect and/or missing, no symbols loaded for MyProgram.exe] 
MyProgram.exe!0046b639() 
ws2_32.dll!71c044c0() 
ws2_32.dll!71c023ec() 
ws2_32.dll!71c0357b() 
msvcr90.dll!malloc(unsigned int size=0) Line 163 + 0x5f bytes 
ffffffff() 

回答

0

没有太多去,没有源代码,但是...

下面的条目表明,一个NULL FILE*已经传给fgets()

fgets(char* string=0x30ebf7c4, int count=15, _iobuf* str=0x00000000) 

我可以看到ws2_32.dll在你的调用堆栈中,所以我假设你在某处使用套接字。

在猜测我会建议远程套接字端点已经关闭,你正试图读取它。

如果这是一个发布版本,您可以更改项目设置,以便生成一个.PDB,然后您可以使用该.PDB从转储中获取一些更明智的信息。

如果您可以发布更多代码或对上述内容发表评论,则可能会进一步提供帮助。

+0

是的,它是一个发布版本。将尝试生成一个PDB文件并等待下一次崩溃。 – Johnyy