它是可以的,如果程序有内存损坏,而调试,但在发布运行良好
Is it okay if program has Memory corruption while debugging, but runs fine in relase
我有一个程序在调试时导致内存损坏,但在发布时运行得很好。为了增加陌生感,程序在"崩溃"之前完成了它的功能(它将数据保存到文件中)。这是否意味着Visual Studio不喜欢我的程序,还是意味着我有一个需要修复的严重错误?一般来说,如果调试模式崩溃,是否总是意味着程序有问题,或者可能只是程序在调试模式下运行的方式有问题,所以我不应该太担心?
这几乎肯定是应用程序中的一个bug,需要跟踪和修复。
有许多类型的bug会导致未定义的行为。某些类型的未定义行为(如内存损坏)可以表现为看似随机的故障,这些故障在程序中较晚出现,而不是导致它们的错误。在调试模式下,Visual Studio会尽力确保此类故障尽可能早地发生并尽可能突出。在发布模式下,重点是性能。
在https://stackoverflow.com/a/312352/367273
不行。这很可能意味着某些变量或指针没有初始化。在调试模式下,这些未初始化的值通常默认为0,而在发布(优化)代码中不使用这种默认值。
这意味着你有严重的bug需要修复。最有可能的原因是您使用了未初始化的变量。在VS中,这是导致程序在调试和发布时运行不同的最常见原因。
相关文章:
- 运行同一解决方案的另一个项目的项目
- CMake-按正确顺序将项目与C运行时对象文件链接
- 如何运行位于boost/libs/python/example/tutorial目录中的hello.cpp和Jamfil
- 代码在main()中运行,但在函数中出现错误
- 我在c++代码中生成了一个运行时#3异常
- 如何在linux终端中同时编译和运行c++代码
- 为什么在运行时没有向我们提供有关分段错误的更多信息?
- 如何在运行中期切换GTK CSS style_context
- 如何在MS Visual Studio 2019中运行QT UI
- 如何通过cpp程序运行shell脚本
- IPC使用多个管道和分支进程来运行Python程序
- 删除指向指针的指针是运行时错误吗
- 如何用参数值调用函数(仅在运行时已知)
- 为什么即使使用-cudart-static进行编译,库用户仍然需要链接到cuda运行时
- 是否可以在编译时初始化数组,以便在运行时不会花费时间?
- c++中的指针和运行时错误
- 在C应用程序中运行C++(带有STL)函数
- 运行程序时出现问题
- 控制允许动态运行c++的并发操作数
- 无法获取菜单选择以运行函数.C++