Code::Blocks 调试模式:我的代码在构建和 运行 时崩溃,但在 debug/continue 时不会

Code::Blocks debug mode: my code crashes if build and run, but not if debug/continue

我的 IDE 是 Code::Blocks。我处于调试模式,单击 "red play button" 进行调试/继续,我的代码运行良好。然后,始终处于调试模式,我单击 运行 的 "green play button" 并且我的代码崩溃了。 关于为什么会发生这种情况的任何想法?如果单击“调试”/“继续”一切正常,如何在我的代码中找到错误? 我无法包含我的代码副本,因为它太长了。

经过试错调试,我发现当我使用"delete[]"释放由"new"分配的指针指向的内存块时,程序崩溃了。奇怪的是,这个动态分配和释放是在一个for循环中,循环几次后程序就崩溃了,所以一开始就不对。

感谢您提出任何建议。

编辑:分配是 "new[]"。我无法粘贴代码,因为它太长了。相同的分配和解除分配在我的代码中用于其他指针没有问题,但显然只有其中一些导致代码在解除分配时崩溃。如果我点击 "Debug / Continue" 程序没有崩溃,但是当我点击 "Run" 时程序崩溃,我该如何调试?

调试和发布模式之间的一个主要区别是,通常在调试中,所有内存都将初始化为零。通常这会使调试比发布更好。

但是,如果您正在访问一个已初始化为 0 的指针,那么这将导致分段错误或类似错误。在发布模式下,您可能很幸运,让这个指针查看可访问的内存。

感谢您的帮助。最后我的程序试图越界访问指针,所以我解决了它。奇怪的是,调试器没有显示任何 error/warning(例如分段错误)。