- 主题:对于几十万行代码的工程,如果某一处出现了数组越界,如何定位
--
FROM 111.19.92.*
不懂sanitizer、profiler,求指点
【 在 z16166 的大作中提到: 】
: 咋知道是某处数组越界了?
: 几十万行代码听着吓人,一般就是想办法隔离问题吧,缩小范围
: 通用的方法是各种sanitizer、profiler用的,在分配的内存的前后增加guard位。
--
FROM 111.19.92.*
基本上必现,但就是代码量太大,如何查找是个问题
【 在 haman2013 的大作中提到: 】
: 重现难度有多大?
--
FROM 221.11.8.*
gcc功能这么强大啊,我得试试了
【 在 leving 的大作中提到: 】
: 数组越界没有好的工具不好查的,如果是gcc的话,可以试一试这个编译选项 -fsanitize=address
: :
: - 来自「最水木 for iPhone X」
--
FROM 221.11.8.*
您就是具体怎么找吧,不难找太难理解了
【 在 lengxinyi 的大作中提到: 】
: 程序会报错啊,如果不是全局变量满天飞,不难找吧
: 比查运行多少个小时后有内存泄露容易太多了。。。
:
--
FROM 221.11.8.*
内存泄露和数组越界不一样吧
内存泄露是指申请的内存没有回收,数组越界是指,数组中的内容大于数据元素个数
【 在 wuyeguo 的大作中提到: 】
: valgrind
:
: #发自zSMTH@KB2000
--
FROM 221.11.8.*
这个无法确定吧
【 在 Kawyio 的大作中提到: 】
: 地址确定的话,可以加数据断点
--
FROM 111.19.45.*
mstrace???
那个是跟踪内存溢出的,malloc申请内存未回收的情况
【 在 heyuanlie 的大作中提到: 】
: 内存跟踪?
:
--
FROM 111.19.45.*
意法半导体出这bug也太不专业了吧
【 在 Contador 的大作中提到: 】
: 想当年用ST的sdk,不定期内核崩溃,可把我给调死了,gdb也搞不定,一开调试就不崩了,最后一遍遍看代码发现数组越界,ST的人很不好意思,专门请我吃了顿饭。
: 发自「今日水木 on vivo NEX S」
--
FROM 111.18.136.*
数组越界不是每次都必现错误的、
、
【 在 mopo 的大作中提到: 】
: 代码提交diff定位大致位置,静态分析+小流量复现排查,成熟的核心商业系统这样的case大概几个小时能完成修复
: 不管结果如何,一条线的人通报批评是省不了的了
--
FROM 113.138.30.*