동기화 동작 추적
스레드 생성과 합류, 뮤텍스 및 조건 변수 등 동기화 동작을 관찰한다. 적절한 동기화 없이 공유 메모리에 접근하는 경우를 찾아 보고한다. 실행 중 관찰한 동작과 지원하는 동기화 모델이 분석 결과의 기반이 된다.
잠금 순서와 교착 가능성
여러 잠금을 얻는 순서가 일관되지 않으면 교착 위험의 단서가 될 수 있다. 실제로 해당 실행이 멈췄는지와 잠금 순서가 위험한지에 대한 보고는 구분해야 한다. 각 스레드가 보유한 자원과 호출 위치를 함께 검토한다.
사용자 정의 동기화
표준 스레드 API를 사용할 때 잘 동작하도록 설계되며 사용자 정의 원시 동작에는 별도 설명이 필요할 수 있다. 인식하지 못한 동기화가 진단에 영향을 줄 수 있다. 경고가 없는 실행도 모든 가능한 스케줄의 안전성을 보장하지는 않는다.
관련 문서
DRD / ThreadSanitizer / Clang Thread Safety Analysis / Valgrind