1

我正在通过 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()
4

1 回答 1

0

没有源代码就没什么可做的了,但是......

以下条目表明已将 NULLFILE*传递给fgets()

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

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

猜测一下,我建议远程套接字端点已关闭,您正试图从中读取。

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

如果您可以在上面发布更多代码或评论,则可能会提供进一步的帮助。

于 2013-05-16T07:15:26.357 回答