gdb常用用法

http://blog.youkuaiyun.com/win_lin/article/details/7515588


1. 编译时使用-g打开调试。-O 0关闭优化,使调试时可以和源码对应。
2. r 启动调试,后面带运行参数。例如:
    r --debug --config /etc/fvss/fvss.conf
    r === run
3. 设置断点:
    b PSService.cpp:56
    进入该文件后,可以设置断点到函数:
    b CPSService::Instance
    b === break
4. 删除断点:
    clear 删除当前行的断点。
    delete 删除指定编号的断点,默认删除所有断点。
5. 执行方式:
    n 单独执行,不进入子函数内部。
    s 执行进入子函数内部。
    c 继续执行到下一个断点。
    u 执行到某行。
    jump 跳到某行执行。
    return 中止当前执行函数,返回并停在上个调用的函数。可加表达式表示函数的返回结果。
    finish 执行完当前函数,返回并停在上个调用的函数。
    u === until
    n === next
    s === step
    c === continue
6. 查看:
    i s 查看调用堆栈。
    p pServiceHost 打印变量的值。
    bt === i s
    I === info
    f === frame
7. 查看源码:
    CTRL+X+A 进入和退出文本界面模式。
    l 打印源代码。
8. 源码的搜索目录:
    cd /home/winlin/fmsoss/src/fvss 改变当前目录到该目录。
    directory /home/winlin/fmsoss/src/fvss 将目录添加到搜索目录。
9. 查看变量的值:
    p i 打印变量。
    p === print
    p i=10 设置变量的值
    set i=10 设置变量的值
10. 多线程调试:
    i threads 查看程序所有的线程。
    thread threadno 切换到某个线程。
11. 调用函数:
    call function(arg) 可以使用该命令调用某个函数。
12. 调用程序:
    shell ls 调用shell命令启动程序。
13. 设置print打印的长度:
    set print elements 0
14. 设置进入fork的子进程:
    set follow-fork-mode child
15. 忽略某个信号,譬如实时信号35:
    handle SIG35


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值