背景
某游戏钉钉联系我说出现dump导致模板异常,因为模板是我负责的,所以就顺便看了下
dump
链接:https://pan.baidu.com/s/1pyrJXtv26zLvhvfS3Ts2rA
提取码:48fo
分析过程
查看异常点
1 | 0:034> .ecxr;kv |
出错代码
1 | void CHwTable::SetBottom(LPSET_BOTTOM pSetBottom) |
心中猜测应该就是 x 计算错误,导致m_aryCard(CArray)异常了
!analyze -v 查看异常原因
1 | EXCEPTION_RECORD: (.exr -1) |
是一个C++异常,很符合MFC的CArray的行为,具体查看原因
1 | 0:034> dd 740cbc8c l4 |
明显的一个 “InvalidArgException”
说明
有的同学想看下CHwTable::SetBottom 中x 的参数内容,但是却看不到,其实是因为模板(publish_gametplserver1.0)层是开启了代码优化,所以看不到内容;
可以切换到上层CGameTable::OnSetBottom 这里查看成员变量的值(这个模块是没有开启优化的)