多线程C/C++程序缺陷检测与铁路运营随机模型分析
多线程C/C++程序缺陷检测
在多线程C/C++程序开发中,缺陷检测是确保程序质量的关键环节。下面将介绍一种用于多线程C/C++程序缺陷检测的静态分析方法。
迭代算法
迭代算法用于控制程序块分析的顺序,并在块的输入数据发生变化时对其进行重复分析。为了控制块分析的顺序,该算法会考虑块是否有可靠的输入数据。具体分析顺序如下:
1. 首先分析 if 语句、 φ 函数之后的块,线程的第一个块,以及除 join 、 lock 、 wait 和 state 之外的所有同步语句之后的块。
2. 若同步对象未被锁定,则分析 lock 和 wait 语句之后的块。
3. 最后分析 join 、 lock 和 wait 语句之后具有输入同步边或其同步对象可能解锁的块,以及 state 语句之后的块。
程序块的重复分析包括三个阶段:
1. 确定初始语句 :算法会寻找 join 、 lock 、 wait 或 state 语句 s1 ,并找到满足以下条件的新同步语
超级会员免费看
订阅专栏 解锁全文

679

被折叠的 条评论
为什么被折叠?



