- 主题:对于几十万行代码的工程,如果某一处出现了数组越界,如何定位
内存泄露和数组越界不一样吧
内存泄露是指申请的内存没有回收,数组越界是指,数组中的内容大于数据元素个数
【 在 wuyeguo 的大作中提到: 】
: valgrind
:
: #发自zSMTH@KB2000
--
FROM 221.11.8.*
比如一个指针,在100行赋值
在200行被写越界写成了别的值
在10000行写入的时候挂了
你二分只能定位到10000行,这不解决任何问题
甚至没有提供任何信息给你
【 在 bestday (bestday) 的大作中提到: 】
: 举几个hello world在某些时候不能这么干的例子,学习学习。
--
FROM 36.110.72.*
我记得是可以检测出来的,应该有些静态检测软件也能检测出来,不过可能依赖于代码
的实现方式
【 在 tianzong (emb) 的大作中提到: 】
: 内存泄露和数组越界不一样吧
: 内存泄露是指申请的内存没有回收,数组越界是指,数组中的内容大于数据元素个数
--
FROM 121.69.67.*
valgrind 可以检测数组越界。
编译时 CFLAGS 加上 -g (用于错误定位),运行时命令前面加上 valgrind 就好。
【 在 tianzong 的大作中提到: 】
: 内存泄露和数组越界不一样吧
: 内存泄露是指申请的内存没有回收,数组越界是指,数组中的内容大于数据元素个数
:
--
FROM 85.5.187.*
如果毕现,也知道是哪里被写坏的话,可以加一下watchpoint看看,问问你们的系统团队,有没有实现这样的东西
--
FROM 1.203.163.*
看来Rust是有点前途的...
【 在 tianzong 的大作中提到: 】
: --
:
发自「今日水木 on iPhone XR」
--
FROM 171.84.1.*
每次去掉一块功能,缩小范围
--
FROM 211.167.83.*
地址确定的话,可以加数据断点
【 在 tianzong 的大作中提到: 】
: --
: FROM 111.19.92.*
--来自微水木3.5.8
--
FROM 117.136.55.*
内存跟踪?
【 在 tianzong 的大作中提到: 】
--
FROM 120.235.170.*
这个无法确定吧
【 在 Kawyio 的大作中提到: 】
: 地址确定的话,可以加数据断点
--
FROM 111.19.45.*