【debug】gdb

首先要编译出带调试信息的程序,加个-g参数

 

gdb 程序名 进入gdb模式

 

ulimit -c unlimied 设置core文件大小为没有限制

 

break 文件名 : 行号 设置断点 (甚至可以设置条件断点)info breakpoints可以查看断点信息

 

list first,last 列出代码(作用不大)

 

step 单步调试(逐语句)

next (逐过程,不进函数,直接返回执行结果)

 

continue 继续执行到下一个断点

 

print 打印变量名

 

watch 设置观察点

 

frame 切换栈帧

gdb 为所有存活的栈帧分配一个数字编号,最深帧的编号是0,被它调用的内个帧的编号就是1。这些编号子程序中是不
存在的,只不过时调试的时候被gdb用的。

    关于函数帧的两个指令:

    frame args
    移动到args指定的栈帧中去,并打印选中的栈的信息。args可以时帧编号或者时帧的地址。如果没有args,则打印当前帧的信息。

    select-frame args

 

gdb 可执行程序exe
进入gdb环境后
core-file core的名字
敲命令bt可以查看准确信息 (backtrace)

q退出

 

posted on   甲鱼写代码  阅读(37)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示