利用gdb调试代码

前言:当前调试代码多通过函数中打印的日志,而日志不可能非常详细,不可能像本地一样断点调试。但是通过gdb可实现在环境上的‘断点调试’。

主要分为三步:在对应的节点上安装gdb、写调试命令、出发微服务。经过这三部分,得到的对应行参数的值;通过分析该值结果,该值的获取有问题,快速定位出问题。

首先,在服务所在的OM节点上安装gdb。先将gdb安装程序拷贝到该节点的home/cspexpert目录下。然后,在xshell下的该目录执行命令:

rpm -ivh  gdb安装程序名。完成gdb的安装。

 然后,在服务所在的节点利用命令:ps –ef | grep (对应服务名),查看服务进程号。

gdb问题跟踪实例:

gcc -g -o main.c main
gdb main
//进入gdb调试模式,输入quit退出
run
backtrace(编译时加入-g选项可以显示问题代码具体行数)

进程挂掉,生成core文件:

ulimit -c unlimited

gdb ../src/liteSvcA/sma /opt/csp/cspsnmadapt/sbin/core.

bt //打印堆栈信息

./run.sh
gdb attach `pidof sma`
set height 0
set print pretty on
set breakpoint pending on
set follow-fork-mode child
handle SIG35 SIG36 SIGUSR2 noprint nostop
p m_stVFSInfo
b VOS_VFS_Adapt_FsInit
p g_acSSPOuterVer 
command
bt
i r
x/30wx &m_stVFSInfo
p m_stVFSInfo
det
q
end
c

转载于:https://my.oschina.net/u/3738344/blog/1594936

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值