Visual C 中奇怪的异常运行时 10

发布于 2024-11-12 16:55:25 字数 349 浏览 4 评论 0原文

今天我在运行时遇到了非常奇怪的异常。我试图一步步调试,但异常发生在 main() 调用之前。

所以我删除了每个包含和整个代码(对其进行了注释),并添加了一个空的 main() 函数。

编译后又出现了。也许是项目配置错误?

顺便说一句:发生异常后,VC10 调试器转到 strlen.asm 并显示空指针。

VS10 解决方案有 2 个项目,第二个项目工作得很好,第一个项目也很好,但在我编译第二个项目后,它停止工作。

这些项目具有相同的二进制文件输出,但每个项目都有一个用于 obj 等文件的额外输出文件夹。

那么,那里发生了什么事?

Today I got really strange exception at runtime. I tried to debug step by step, but the exception occurs before main() is called.

So I removed every include and the whole code (commented it), and added an empty main() function.

And again, after compiling it occurs. Maybe a project configuration bug?

BTW: after the exception, VC10 Debugger goes to strlen.asm and says empty pointer.

The VS10 solution got 2 projects the second works really well, and the first did too, but after I compiled the second project, it stopped working.

The Projects have the same Output of the binaries, but they got an extra output folder for obj etc.. files, for each Project.

So, whats going on there?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

凶凌 2024-11-19 16:55:25

该问题很可能是全局或静态对象初始化的一部分,然后使用空指针调用 strlen。您的 .cpp 中有全局变量吗?或者某些类中的任何静力学?

请注意,即使您从 main.cpp 中删除所有内容,其他 .cpp 文件仍然会被编译并导致错误。

The problem is most likely part of the initialization of a global or static object which then calls strlen with a null pointer. Do you have any globals in any .cpp? Or any statics in some classes?

Note that, even if you remove everything from the main.cpp, the other .cpp files will still be compiled and cause the error.

寄意 2024-11-19 16:55:25

由于没有任何细节,很难说得准确,所以我只能根据我的两次类似经历来分享建议。它不在 Visual Studio 中,但您可能碰巧遇到同样的问题。

  1. 您可能需要一个动态加载的组件(dll、ocx 等),但该组件不在运行调试版本的路径中。

  2. 您可能有行为不当的全局初始化

Without any details it's hard to say anything precise, so I can only share advice based on two similar experiences I had. It wasn't in Visual Studio, but you might happen to have the same problem.

  1. You might need a dynamically loaded component (dll, ocx etc.) that is not in the path where you run the debug version from.

  2. You might have misbehaving global initializations

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文