13-应对并发 Bugs (动态程序分析:应对死锁、死局和死线)

13-应对并发 Bugs (动态程序分析:应对死锁、死局和死线)

运行时lock ordering检查(动态分析)

应对死锁,给锁编号,构建图

形成环,就有循环等待,就有可能死锁

对上锁的顺序进行一个闭包运算

同一行分配的锁就是同一个锁(近似)

data race

基本原理就是不同线程对同一变量,至少有一个是写操作

编译加-fsanitize=thread线程消毒器