Linux系统C语言--编译调试

13 篇文章 0 订阅

1)gcc   GNU Compiler Collection

分为四个阶段:

a)预处理Pre-Processing:gcc -E test.c -o test.i

b)编译Compiling:        gcc -S test.i -o test.s   汇编语言文件

c)汇编Assembling:       gcc -c test.s -o test.o   二进制机器代码

d)链接Linking:          gcc test.o -o test

 

一般简化为:

gcc -c test.c -o test.o

gcc test.o -o test

或者直接简化为一步:

gcc test.c -o test

 

2)options:-E  -S  -c  如前

-o output_filename

-g 产生gdb所需符号信息

-Wall 显示素有警告

-O  -O2  优化,编译链接过程慢

-Idirname  include地址

-Ldirname  lib地址

-llibname  例如:-lm  数学库

-MM 自动生成依赖性  例如:gcc -MM main.c

 

3)gdb

使用:

>gdb 程序文件名

>gdb

>gdb -q   不显示版权信息

 

(gdb) file 程序文件名

(gdb) list filename:lin1, line2   line1-line2内容显示

(gdb) list funcname

(gdb) search 字符串

(gdb) reverse-search 字符串

(gdb) shell shell命令

(gdb) run

(gdb) break 行号/函数名  if 条件

(gdb) watch 条件   条件中的变量必须已定义,即程序已经运行过该变量定义处

(gdb) print 变量/表达式/变量=值(赋值)

(gdb) disable 断点编号

(gdb) enable 断点编号

(gdb) info breakpoints

(gdb) clear     删除所有断点

(gdb) clear 行号/函数名

(gdb) delete 断点编号   用,分隔

(gdb) whatis 变量/表达式    查看数据类型

(gdb) set variable 变量=值    与print赋值同

(gdb) continue

(gdb) kill   结束调试

(gdb) next

(gdb) step  进入函数

(gdb) nexti

(gdb) stepi   这两个是机器指令

 

4)ldd  程序文件名    打印程序依赖的共享函数库

   nm   程序文件名    显示目标文件符号表

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值