文档信息
前言
1. 什么是线程分析器?它有什么作用?
2. 数据争用教程
2.1 数据争用教程源文件
2.1.1 获取数据争用教程源文件
2.1.2 prime_omp.c 的源代码
2.1.3 prime_pthr.c 的源代码
2.1.3.1 数据争用在 prime_omp.c 和 prime_pthr.c 中的效果
2.2 如何使用线程分析器查找数据争用
2.2.1 检测代码
2.2.1.1 检测源代码
2.2.1.2 检测二进制代码
2.2.2 创建数据争用检测实验
2.2.3 检查数据争用检测实验
2.2.3.1 使用线程分析器查看数据争用实验
2.2.3.2 使用 er_print 查看数据争用实验
2.3 了解实验结果
2.3.1 prime_omp.c 中的数据争用
2.3.2 prime_pthr.c 中的数据争用
2.3.3 数据争用的调用堆栈跟踪
2.4 诊断数据争用的原因
2.4.1 检查数据争用是否为误报
2.4.2 检查数据争用是否为良性
2.4.3 修复错误而不是修复数据争用
2.4.3.1 修复 prime_omp.c 中的错误
2.4.3.2 修复 prime_pthr.c 中的错误
2.5 误报
2.5.1 用户定义的同步
2.5.2 由不同线程回收的内存
2.6 良性数据争用
2.6.1 用于查找质数的程序
2.6.2 用于检验数组值类型的程序
2.6.3 使用双检锁的程序
3. 死锁教程
A. 线程分析器可识别的 API
B. 有用提示
本教程详细介绍如何使用线程分析器检测和修复数据争用。
本教程分为以下几节: