C++服务不定期崩溃
现象:服务器程序不定期崩溃,每次崩溃点都不同。
exe不定期崩溃,初步判断是由于数组越界导致堆栈错误,但是又找不到越界位置。
每次产生dump崩溃点都不一致,还有什么方法来定位吗?
越界是比较难找,只好基于猜测、慢慢收缩查找范围。另外,gdb里面有个命令叫watch,或许你用的上。
谢谢,我这边是Windows平台,最终通过排除法,一点点减功能,定位出了问题模块。
加一些日志
日志也加了很多,目前还看不出来越界的位置。
通过dump是否可以倒推到越界的时候呢?现在的dump每次表现都不一样
最终通过排除法,一点点减功能,定位出了问题模块。
给你们也讲讲排除过程,使用fulldump,在崩溃点附近看各种数据的内存,猜测可能出问题模块。
通过各种尝试,来慢慢排除掉无关模块。
每次崩溃地方都不一样的话,大概率就是踩内存了,这种问题的定位确实没有什么好办法。
1.拼命打日志
2.一点点排除