最近在调试代码是遇到一个蛋疼的问题,百度、google 都没有找到答案,问老大被叼!!
在centos 操作系统中给一个 string 数字赋值,结果程序崩溃了。但是在Ubuntu 系统下好好的。。。
gdb 调试提示如下:
看到提升猜测:
1、string 和 string.h 有问题,各种调查、修改、编译、运行还是挂了,结果提示一样。
2、string 赋值有问题,结果本地创建string 对象赋值,结果没问题。
最终结果:
原来是包含string 对象的数组被memset了,在后面使用string数组的成员是一用就跟挂。
结论:
string 对象一定要注意别动不动就是memset。指不定死都不知道怎么死的。。
最终:
感谢党、感谢组织、感谢老大叼我,不然怎么能苦战一天调试这个问题呢。