Debugging 代码不';无法在调试中工作 我编码了一个C++大项目,当我在调试或发布模式下打开它时,它运行,但是当我打开它时,没有调试(CTRL+F5),它在5秒后崩溃。它只是不再回复,并在taskmanager中标记为不活动。我试图用windows调试器工具和应用程序验证程序分析错误,但什么也没发现。即使我设置了“\u NO\u DEBUG\u HEAP=1”,错误也不会发生,只是在我使用ctrl+f5或从visual studio外部启动它时才会发生。我甚至不确定“不调试”堆是否有效。。。有人知道什么地方出了问题吗?

Debugging 代码不';无法在调试中工作 我编码了一个C++大项目,当我在调试或发布模式下打开它时,它运行,但是当我打开它时,没有调试(CTRL+F5),它在5秒后崩溃。它只是不再回复,并在taskmanager中标记为不活动。我试图用windows调试器工具和应用程序验证程序分析错误,但什么也没发现。即使我设置了“\u NO\u DEBUG\u HEAP=1”,错误也不会发生,只是在我使用ctrl+f5或从visual studio外部启动它时才会发生。我甚至不确定“不调试”堆是否有效。。。有人知道什么地方出了问题吗?,debugging,visual-c++,visual-studio-debugging,Debugging,Visual C++,Visual Studio Debugging,可能是多种原因造成的 根据我过去的经验,我建议通过删除代码直到行为消失来解决这个问题。。。然后确定删除相关代码的原因纠正了行为。(删除的代码可能不是原因,只是症状的催化剂) 如果让我快速浏览一下以发现错误,我会考虑查找与缓冲区溢出相关的问题。这种类型的错误在调试中比执行最终生成有更多的保护措施。这只是一个暗箭伤人的想法,因为缓冲区溢出是一个常见的问题,有点符合症状 -dm检查的常见事项: 您确定您的应用程序正在将任何内存设置为零, 如果它假设内存必须清零 Visual Studio可能正在初始化

可能是多种原因造成的

根据我过去的经验,我建议通过删除代码直到行为消失来解决这个问题。。。然后确定删除相关代码的原因纠正了行为。(删除的代码可能不是原因,只是症状的催化剂)

如果让我快速浏览一下以发现错误,我会考虑查找与缓冲区溢出相关的问题。这种类型的错误在调试中比执行最终生成有更多的保护措施。这只是一个暗箭伤人的想法,因为缓冲区溢出是一个常见的问题,有点符合症状


-dm

检查的常见事项:

您确定您的应用程序正在将任何内存设置为零, 如果它假设内存必须清零

Visual Studio可能正在初始化给定给的内存 应用程序

是否所有分配的内存都被释放

是否没有使用未初始化的指针

是否没有使用未初始化的变量

问题是否只发生在一台计算机上

您可以使用check_heap检查堆的有效性 在节目中:

您可以使用Windows调试工具来显示堆 腐败-有一个叫做“gflags”的工具随附 Microsoft“Windows独立调试工具”

此URL显示如何对.EXE运行gflags:


您希望
\u NO\u DEBUG\u HEAP
做什么?您是否尝试将调试器附加到进程以查看其位置?“不再回复”是什么意思?