• gdb调试的常用参数说明


    gcc hello.c -g -o hello 就会生成待调试信息的hello可执行程序
    gdb hello 就会进入调试状态

    查看源代码: 

    l 查看main源代码(L的小写,不是数字1),list的缩写
    l [filename:linenum] 查看指定文件的指定行的源代码
    继续查看按l
    l [filename:func] 查看指定文件的指定函数的源代码
    继续查看按l
    设置断点:
    b [linenum] 第几行打断点,或者break的缩写
    b [10] if [i==5] 就是在第十行当i等于5时停下
    b [func] 在func函数入口处打断点
    del/d [num] 删除断点,del即delete,num通过info break查看,没有[num]表示全部删除,num也可以是一个范围,比如(2,8)
    disable [num] 禁用断点,num通过info break查看
    enable [num] 启用断点,num通过info break查看
    查看值:
    i b 查看断点,i即info,b即break,
    p a 打印变量a的值,p即print
    ptype a 打印a的变量类型
    display a 追踪变量a,一般循环里面使用
    undisplay [num] 不追踪变量,num通过info display查看
    set var i=10 直接从i等于10开始执行,一般用于循环里面
    运行程序:
    start 启动调试,只执行一行代码
    r 即run,启动调试,执行到第一个断点的位置
    quit 退出调试状态
    n 即next,执行下一步
    c 即continue,执行到下一个断点处
    u 即util,跳出单次循环
    s 即step,进入函数
    finish 跳出当前函数,需要先删除该函数的所有断点del [num]

    多进程调试: 

    set follow-fork-mode parent 跟踪父进程
    set follow-fork-mode child 跟踪子进程
    附:一定要在fork之前设置才有效
  • 相关阅读:
    Swoole 协程使用示例及协程优先级
    Swoole 协程简介
    Laravel Redis分布式锁的使用
    Laravel Redis分布式锁实现源码分析
    Swoole 中使用异步任务
    runtime相关面试
    oc笔试题
    属性关键字面试题
    KVC面试题
    KVO面试题
  • 原文地址:https://www.cnblogs.com/yongfengnice/p/6784993.html
Copyright © 2020-2023  润新知