Neo*_*rge 0 c++ g++ codeblocks segmentation-fault
编辑:
好吧,我将编辑我的问题,这次我知道我真正需要什么。我最初的问题源于缺乏解决问题所需的信息。当然!这和我的代码有关,我的错。但只是一架飞机坠毁在陆地上,我需要飞机在坠机前正在做什么以及飞行员在坠机前正在做什么的信息。
与我需要的类似,如果我有一个 main 调用 function1 并且 function1 调用 function2 并且在 function2 上导致崩溃,所以在堆栈 function2、function1、main 上。当然,出现了崩溃,所以我需要查看类似 function1、main 的内容。我确实知道 function1 工作得很好,并注释掉了 function1 中的 function2 调用。伟大的!它就像一个魅力,天哪,我知道 function2 有问题!我的问题解决了!c::b 中一定有某种功能,它允许我查看按顺序调用的函数列表。我需要这些非常重要的信息来消除这个运行时错误。是否存在某种黑匣子或者我只是妄想?好吧,我总是可以回到我的备份,只使用我的臭代码,然后完成项目。该死的,这只是一个简单的重构,但这次却出错了。
我使用的是 Windows 7、g++ 4.7.0 和 Code::Blocks 版本 12。
另请注意,它也是一个包含许多文件的项目,并且依赖于库及其模块。我可以使用控制台和第三方应用程序,但我不理解它,如果我理解,我也不知道如何在 Windows 上执行此操作。至少我需要查看哪一行在崩溃之前最后执行,即使是很小的信息也可以让我深入了解在重构此代码时忽略的某些内容。
编辑:如果有帮助的话:这是我的堆栈跟踪的样子
#0 0040C638 ?? () (??:??)
#1 ABABABAB ?? () (??:??)
#2 FEEEFEEE ?? () (??:??)
#3 ?? ?? () (??:??)
Run Code Online (Sandbox Code Playgroud)
之前的通话在哪里?main()在哪里?例行程序期间在哪里调用这些函数?我看到的都是这个,如果是这样的话我无法解决错误。
任何帮助都会很棒。
在 Code::Blocks 的顶部“调试”菜单中,运行 GDB/CDB 调试器,然后返回到该调试菜单并选择“调试 Windows”->“调用堆栈”。这(应该)打开一个窗口,在您运行程序时显示当前堆栈。