当前位置:  开发笔记 > 编程语言 > 正文

GDB显示无堆栈

如何解决《GDB显示无堆栈》经验,为你挑选了0个好方法。

我正在尝试运行测试程序,以查看gdb(backtrace)如何显示调用堆栈。我有以下程序

#include
#include

void fun2()
{
        assert(0);
}
void fun1()
{
        fun2();
}
int main()
{
        fun1();
        return 0;
}

我执行以下操作:

g++ -g dump.cpp -o out 
./out
out: dump.cpp:16: void fun2(): Assertion `0' failed.
Abort (core dumped)
gdb out core.28149



(gdb) bt
No stack. //Why does it show no stack here

我期望它将呼叫堆栈显示为:

fun2
fun1
main

编辑:我编辑了代码并编译为 g++ -g -O0 dump.cpp -o out

但我仍然没有筹码

void fun2(int num)
{

        int h=23;
        if(h*num>100)
        {
                assert(0);
        }
        else
        {
                cout<<"Hello";
        }
}
void fun1(int num)
{
        {
                fun2(num);
        }
}
int main()
{
        int num;
        cin>>num;
        fun1(num);
        return 0;
}

这次的汇编代码向我展示了fun1,fun2(assert),main的单独代码。但是我仍然看到gdb中没有堆栈

推荐阅读
惬听风吟jyy_802
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有