如何在Code :: Blocks中查看运行时调用的函数列表

时间:2013-12-19 03:11:59

标签: c++ g++ codeblocks sigsegv

编辑:

好吧我会编辑我的问题,这次我现在知道我真正需要什么。我原来的问题源于缺乏解决问题所需的信息。当然!它与我的代码有关,我的坏。但只是一架飞机坠毁在陆地上,我需要在飞机坠毁前飞机上正在做什么信息以及飞行员在坠机前做了什么。

与我需要的类似,如果我有一个main调用function1而function1调用function2而on2导致崩溃,那么在stack function2,function1,main上。当然有崩溃,所以我需要看看,function1,main。我确实知道function1工作得很好并且注释掉了function1的function2调用。大!它就像魅力一样,而且我知道功能2有问题!我的问题解决了! c :: b中必须有某种特性,它允许我按顺序查看被调用的函数列表。我在压缩此运行时错误时需要的非常重要的信息。是否有某种黑盒子或我只是妄想?好吧,我总是可以回到我的备份,只是使用我的臭代码,无论如何完成项目。该死的只是假设这是一个简单的重新分解,这次错误。

我使用的是Windows 7,g ++ 4.7.0和Code :: Blocks版本12。

另请注意,它也是一个包含许多文件的项目,并且依赖于库及其模块。我可以使用控制台thingy和第三方应用程序,但我不明白,如果我这样做,我不知道如何为Windows做到这一点。至少我需要看看在它崩溃之前最后执行了哪一行,即使这些小信息可以让我深入了解我在重新考虑此代码时忽略的内容。

编辑: 如果它有帮助:这是我的堆栈跟踪看起来像

#0 0040C638 ?? () (??:??)
#1 ABABABAB ?? () (??:??)
#2 FEEEFEEE ?? () (??:??)
#3 ??   ?? () (??:??)

之前的电话在哪里? main()在哪里?例程中调用的函数在哪里?我只看到这个,如果是这样的话,我无法解决错误。

任何帮助都会很棒。

2 个答案:

答案 0 :(得分:4)

在Code :: Blocks的顶级Debug菜单中,运行GDB / CDB调试器,然后返回到该调试菜单并选择Debugging Windows - >调用堆栈。那个(应该)打开一个窗口,在你运行程序时显示当前的堆栈。

答案 1 :(得分:1)

如果要查看,请打开跟踪窗口,然后使用“step in”调试器命令逐步执行此操作。这将显示功能详细信息,在“监视”调试器窗口中,您可以看到变量的值。