GDB使用总结

经典编译参数

# cc  -g  -o   xx  xx.c

 或者

# cc xx.c  -g -o xx

 

如果调试不是进程总的程序

可以直接

#gdb  程序名即可

# i     打印行号

#break   行号

#r          重新开始调试

利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。
(gdb) set args –b –x
(gdb) show args

可以先-p上程序 再加参数。

 

给GDB传递参数

int main( int argc, char* argv[] )

if( argc <= 2 ) {
        printf( "usage: %s ip_address port_number\n", basename( argv[0] ) );
        return 1;
 }

const char* ip =argv[1];
int port = atoi( argv[2] );

#ps aux 查进程

#gdb -p pid    注意千万不要在这后增加参数 没用的

#set args  localhost 7777

#break main

#r

#s

 

二:编译选项

要使用gdb调试必须使用-g编译选项,同时还要启用O0,避免O2优化。

方法一:

# ./configure CFLAGS="-g -O0" --prefix=/usr/local/xxx

方法二:
# make CFLAGS="-g -O0"

方法三:

直接修改Makefile文件的的CFLAGS选项,例如nginx的Makefile

CFLAGS =  -pipe  -O -W -Wall -Wpointer-arith -Wno-unused-parameter -Werror -g

注意:如果已经生成这样的Makefile文件以后,如果继续使用# make CFLAGS="-g -O0"   那么编译的时候就会

cc -c -g -g -O0 

可见make 后的CFLAGS是拼在MakeFile文件的CFLAGS后的,避免重复-g  可以  make CFLAGS="

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值