栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

Linux基础——GCC编译器和GDB调试

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux基础——GCC编译器和GDB调试

参考资料:linux全套教程【黑马】P1-P98

文章目录
  • gcc编译的四个阶段
  • gcc的一些参数
  • gdb调试(可配合VS Code使用)

gcc编译的四个阶段

一步完成:gcc hello.c -o hello(编译器会自动完成中间步骤,并清理中间文件

gcc的一些参数
-E 预处理器
-S 编译器
-c 汇编器
-o 指定输出可执行文件名

-I 指定头文件搜索目录
-D 在编译的时候定义宏(控制log的输出)
-g 在可执行程序中增加调试信息(gdb调试)
-O 是否优化代码 0/1/2/3
-Wall 编译期间输出警告信息
-L 指定静态/动态库目录
-l 指定静态/动态库名字(掐头lib去尾.a/.so)
gdb调试(可配合VS Code使用)
  • 前提条件

    • 可执行文件必须包含调试信息 gcc -g
  • 启动gdb

    • gdb 文件名
  • 查看代码 l – list

    • l 行号(或函数名)
    • l fileName:行号(函数名)
  • 设置断点 b – break

    • 设置当前文件/指定文件断点

      • b 行号(函数名)
      • b fileName:行号(函数名)
    • 条件断点

      • b 行号 if value==10
    • 查看设置的断点 i – info

      • info break或简写为i b
    • 删除断点 d – delete

      • d 断点编号
  • 开始调试

    • start – 只执行一步,开始执行程序,停在第一行
      • c – continue – 继续执行多步,直接停在断点的位置
    • r – run – 开始执行程序,直接停在断点处
  • 单步调试

    • n – next – 单步执行,不进入函数体内部
    • s – step – 单步执行,可以进入函数体内部
      • finish 从函数体内部跳出(需要将循环体中的断点先删掉)
    • u – until – 退出当前循环
  • 变量操作

    • 查看变量的值 p – print
    • 查看变量的类型 ptype 变量名
    • 设置追踪变量 display 变量
    • 取消追踪变量 undisplay 编号
    • 获取编号 info display
    • 设置变量的值 set var 变量名 = 值
  • 退出gdb调试

    • quit
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/676201.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号