gcc编译选项与gdb调试

gcc调试命令

  • gcc【GNU Compiler competition】选项
    • -help:显示gcc帮助说明
    • -target-help:显示目标及其特定的命令行选项
    • -version:显示gcc版本号和版权信息
    • -E:只进行预处理,不编译
    • -c:只编译、汇编,不链接
    • -pipe:使用管道代替临时文件
    • -combine:将多个原文件一次性传递给汇编器
    • -g:包含调试信息
    • -l:制定include包含文件的搜索目录
    • -o:输出成指定文件名
    • -v:详细输出编译过程中所采用的的每一个选项
    • -ggdp:可在执行文件中包含gdp调试使用的信息
    • -std=c99:C99标准
    • -w:忽略所有警告(注意是警告,而不是错误
    • 开启大部分警告提示
  • 创建并使用静态链接库的方法
    • 编写C源文件设为static_lib.c,其中写入需要重复调用的函数,然后使用gcc -c static_lib.c生成目标文件static_l
    • 使用ar工具创建静态库,命令行输入:ar rcs statc_lib.a static_lib.c
    • 编写C头文件static_lib.h,其中写入这些函数的原型声明

gdb调试

  • 简介gdp是gcc的调试工具,其功能如下:
    • 启动程序,使程序按自定义形式运行
    • 使程序停止制定断点位置
    • 程序停止后,检查程序执行中的相应情况
    • 动态改变程序执行环境
  • gdb调试
    • gcc test.c -o test -g
    • g++ test.cpp -o test -g
  • 启动gdb调试的方法有以下三种:
    • gdb <filename>
    • gdb <filename> core // core是程序core dump产生的文件,产生core文件,需设置栈大小无线使用ulimit -c unlimited
    • gdb <filename> PID // PID一般是服务程序运行时的进程ID
  • 常用的调试有以下几种
    • r:运行被调试的程序。如果之前没有设置过断点,则执行完整个程序;如果设置过断点,则程序停在第一个断点处
    • c:继续执行被调试程序,直到下一个断点,或程序整体结束
    • b:设置断点,包括以下几种:
      • b <行号>  // 停在程序的指定“行号”处
      • b <函数名称>  // 停在程序的“函数名称”处
      • b *<函数名称> // 停在编译器生成的prolog代码处。主要用于汇编调试
      • b * <代码地址>  // 停在代码的某个地址处
      • d <编号>  // 删除断点
      • info b // 查看断点
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值