Linux高性能服务器开发:gcc和gdb

本文属于牛客网上的一个项目笔记:Linux高性能服务器开发课_牛客网

GCC和G++

gcc和g++都可以编译c或者cpp文件,但是g++会进行连接  g++ cppfile  gcc不会 需要加参数 gcc -lstdc++ cppfile  G++在编译的时候仍然调用的是gcc,为了方便 c文件用gcc cpp文件用g++

gcc常用参数

-E

预处理源文件

gcc test.c -E -o test.i

预处理展开后的文件

-S

编译源文件 

gcc test.i -S -o test.s

汇编代码

-c

编译汇编源文件

gcc test.s -c -o test.o

二进制文件

-o

生成文件

gcc test.o -o test

连接生成可执行文件

以上步骤可合并成:gcc test.c -o test

GDB调试

射手鱼,会捕捉虫子(bug) ​​​​​​​

gcc -g -Wall filename.c -o app

-g 这样会将源代码信息打包到app中 方便调试。

启动 gdb app

退出 quit

设置传给main函数的参数  set args 值1 值2…

获取参数 show args

设置每次显示的行数 set list 行数

显示每次显示的行数 show list

查看源码 list

l (默认显示main函数所在的文件)

l 行号  (会显示该行附近的代码)

l 函数名(会显示该函数附近的代码)

l 文件名:行号

l 文件名:函数名

打断点

设置断点

b 行号

b 函数名

b 文件名:行号

b 文件名:函数名

查看断点

info b

删除断点

d 断点编号

设置无效断点

dis 断点编号

设置断点生效

ena 断点号

设置条件断点(一般用在循环位置)

b 行号 条件

运行调试

start (程序停在第一行)

run (遇到断点暂停)

c (继续运行到下一个断点暂停)

n (单步向下,不会进入函数)

s (单步向下,会进入函数)

finish (跳出函数体)

p 变量名 (打印变量的值)

ptype 变量名 (打印变量类型)

display num (设置会自动显示变量的值)

info display (显示设置好的自动显示的值)

undisplay (取消显示)

set var 变量名=变量值  (在gdb过程中可以设置变量的值)

until (跳出循环,循环内不能有生效的断点)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值