위키득계정 ↗
기술

Helgrind

Helgrind기술
소속
Valgrind
분류
동시성 오류 동적 검사
주요 기반
POSIX pthreads
검사 예
데이터 경쟁과 잠금 순서
Helgrind는 POSIX 스레드 기반 프로그램의 동기화 오류를 찾는 Valgrind 도구다. 잘못된 API 사용과 잠금 순서 문제, 데이터 경쟁 등을 조사한다.

동기화 동작 추적

스레드 생성과 합류, 뮤텍스 및 조건 변수 등 동기화 동작을 관찰한다. 적절한 동기화 없이 공유 메모리에 접근하는 경우를 찾아 보고한다. 실행 중 관찰한 동작과 지원하는 동기화 모델이 분석 결과의 기반이 된다.

잠금 순서와 교착 가능성

여러 잠금을 얻는 순서가 일관되지 않으면 교착 위험의 단서가 될 수 있다. 실제로 해당 실행이 멈췄는지와 잠금 순서가 위험한지에 대한 보고는 구분해야 한다. 각 스레드가 보유한 자원과 호출 위치를 함께 검토한다.

사용자 정의 동기화

표준 스레드 API를 사용할 때 잘 동작하도록 설계되며 사용자 정의 원시 동작에는 별도 설명이 필요할 수 있다. 인식하지 못한 동기화가 진단에 영향을 줄 수 있다. 경고가 없는 실행도 모든 가능한 스케줄의 안전성을 보장하지는 않는다.

관련 문서

DRD / ThreadSanitizer / Clang Thread Safety Analysis / Valgrind