召唤调试达人,怎样知道函数推出时释放的是哪个对象?
程序出问题了,单步跟踪,发现是在函数退出时自动释放栈上的对象的时候出现访存错误。可是这个函数里申请了很多对象,我怎么能知道释放哪个对象时出的错呢?
[解决办法]
debug的时候应该会断在释放的哪里啊
[解决办法]
1 在要退出函数的时候,切换到汇编窗口
2 出错的时候看函数调用栈,那个析构函数错误,再里面加上断点.
[解决办法]
70%可能是越界
一个函数中分配多个对象不是优良的粒度设计
[解决办法]
那么估计是在操作vector是越界出错,建议加断点在操作vector处,然后检查,没有办法
退回去让she自己去检查,同时K她一顿,让她多写细粒度的函数复合,少些大杂烩~
[解决办法]
单步跟进去?
[解决办法]
数组越界,设几个断点,跟踪吧,
[解决办法]
出现这个错误的情况很多,也可能是vector里面对象析构出错。可以再对象析构中加一些信息写到log文件中查看。
[解决办法]
这个估计还是得自己仔细的一步一步去看,应该是越界。
[解决办法]
不发言,只接分
多接分,买饭吃
o(∩_∩)o...哈哈
[解决办法]
如果调用堆栈还可用,你还可以知道是在那种类型的对象出错
如果调用堆栈都破坏了,估计没招
更可恨的是:如果是内存访问越界出错,出错的类设置毫无责任,出错的地方也不是导致错误的地方,两者可以毫无关系
没好招,你得想办法从开始就加断点单步分析内存变化找
[解决办法]
在函数里面注意看vector之后定义了哪些变量,再查看是哪个越界了。重点看vector之后定义的第1个数组。
[解决办法]