Linux之gcc/gdb

gcc

  • gcc工作流程
    1. 预处理 gcc -E
    2. 编译 gcc -S
    3. 汇编 gcc -c
    4. 链接 没参数
    -o: 指定生成的文件的名字
    -D: 在编译的时候定义宏(控制log的输出)
    -I: 指定头文件的路径
    -g: gdb调试的时候需要添加该参数
    -O: 编译优化, 3个等级 -O(1-3)
    -Wall: 编译期间输出警告信息

gdb

  • gdb调试:
  1. 启动gdb
    start – 只执行一步
    n – next
    s – step(单步) – 可以进入到函数体内部
    c - continue – 直接停在断点的位置
    2. 查看代码:
    l – list
    l 10(函数名)
    l filename:行号(函数名)
    3. 设置断点:
    设置当前文件断点:
    b – break
    b 10(函数名)
    b fileName:行号(函数名)
    设置条件断点:
    b 10 if value==19
    删除断点:
    delete – del - d
    d 断点的编号
    获取编号: info – i
    info b
    4. 查看设置的断点
    5. 开始 执行gdb调试
    执行一步操作:
    继续执行:
    执行多步, 直接停在断点处:
    5. 单步调试
    进入函数体内部: s
    从函数体内部跳出: finish
    不进入函数体内部:
    n
    退出当前循环: u
    6. 查看变量的值: p – print
    7. 查看变量的类型: ptype 变量名
    8. 设置变量的值: set var 变量名 = 赋值
    9. 设置追踪变量
    display
    取消追踪变量
    undisplay 编号
    获取编号: info display
    10. 退出gdb调试
    quit

猜你喜欢

转载自blog.csdn.net/qq_43503315/article/details/88769848