Debug Tracker Core dump on C4C
目录
记录如何在 C4C 系统(交叉编译)环境下调试定位 Tracker 程序的 core dump 原因。
方法
- 通过
.mudp文件确定算法释放版本,如交付客户、打包日期等 - 在释放服务器(
aptiv.val.yirami.xyz)查询释放日志,如auto_release.of_weiqiao_1v2srr_eu.20260708_164329.log - 打开上述日志文件,定位释放节点和释放环境,如
[AUTO_RELEASE] mode=? service=weiqiao_1v2srr_eu custom_id=? ref=08796284f0dadff9f096bbab9d26a3b97abed15f - 切换代码到该释放节点
- 进入释放环境
docker-compose -f ci/docker-compose.auto.yml run --rm -t weiqiao_1v2srr_eu bash source /opt/c4c/wr-init-build-env - 外部拷贝
tracker及.zz扩展名的core dump文件到目录 - 查看调用栈
gdb # loading files file tracker vxcore-file tracker.core.zz # 查看当前线程的函数调用栈 bt # or backtrace # 查看栈帧信息 f # or frame 查看当前帧 f <N> # 查看指定帧编号的栈帧 f <function name> # 查看指定函数对应的栈帧 f <address> # 查看指定内存地址对应的栈帧 # 快捷切换帧 up # 切到上一层栈帧 down # 切到下一层栈帧 # 查看当前帧的入参及局部变量 info args # fus_trk = 0x25e5b0 <object_fusion_wrapper::fus_trks+43472> 其中 43472 为从数组首地址偏移的字节数 info locals p <vars> # 查看指定变量的值