gdb工具的使用手记

在linux下运行的C++程序在运行过程中出现错误时会生成core文件,通过core文件可以对错误进行查找:

1、查看出错点
gdb -c core.6662 ql_connect_svr
bt     //查看出错函数堆栈
frame 3     切换栈,其中3是出错栈编号
l 6365    —list缩写,6365是行号,显示6365行程序周围的代码;
p pMsg->m_srcuid         —print缩写;查看变量值

p ((CChatMsgSend*)pInMsg)->m_dwFromUid
p ((CChatMsgSend*)pInMsg)->m_sendtime
p ((CChatMsgSend*)pInMsg)->m_dwObjType

查看类所有内容
p (*(CChatMsgSend*)pInMsg)
p ((MsgText*)(*(CChatMsgSend*)pInMsg).m_MsgObjBase)->msg
break 16
break func
info break          查看断点
r   运行程序
n     执行下条程序

gdb -c core.12446 yq_msg_server
info threads
thread 1
bt
f0

2、设置断点,单步调试
break CChatMsgSend.cpp:156
break CChatMsgSend.cpp:160
set args -id 10000 -tcp 127.0.0.1:8200 -svr 127.0.0.1:8300
r
[Thread debugging using libthread_db enabled]
Detaching after fork from child process 27095.


另开一个调试窗口:
gdb yq_connect_svr 27095
c
p (*(CChatMsgSend*)pInMsg)
n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值