首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >程序已退出,代码为-2147483645

程序已退出,代码为-2147483645
EN

Stack Overflow用户
提问于 2012-07-21 01:07:30
回答 1查看 13.2K关注 0票数 9

我在使用Visual Studio调试混合的WPF/CLR/非托管本机c++项目时遇到了一个有趣的(相当恼人的)错误,这个错误只发生在Windows XP中。似乎我有一个内存崩溃发生在程序中,它的范围太大了,不能在这里发表。我遇到的问题是,当崩溃发生在程序中时,它只是退出,而不是VS调试器尝试定位异常,我认为这是因为没有抛出异常。程序退出代码实际上是我必须继续下去的唯一信息,而且它只是最小的int值。

有没有人遇到过这种情况,也许能给我指出正确的方向,就其含义而言?

编辑:

继续调查这个问题,我发现我有时可以得到堆栈跟踪和异常,而不是直接的程序退出。这个跟踪将我带到一个向量分配(push)。在程序刚刚退出的情况下,这仍然是执行的最后一行。我假设我在某个地方有损坏的内存,尽管我希望这通常表现为程序转储而不是异常的事实能够帮助我找到正确的方向。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-22 01:31:30

代码语言:javascript
运行
复制
//
// MessageId: STATUS_BREAKPOINT
//
// MessageText:
//
// {EXCEPTION}
// Breakpoint
// A breakpoint has been reached.
//
#define STATUS_BREAKPOINT                ((NTSTATUS)0x80000003L)

该程序在INT3指令上着陆并触发了一个断点。但是不存在调试器,因此会终止程序。它可能是您在代码中留下的一个杂乱的__debugbreak(),它可能是由程序状态被破坏时的疯狂跳转触发的。

您需要对其进行调试。如果你不能很容易地在你的dev机器上重现它,那么你需要一个来自故障机器的小转储。

票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11583957

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档