2016-06-09 5 views
0

여전히 경쟁 조건 버그가있는 복잡한 다중 스레드 프로그램을 디버깅하고 있습니다. 현재까지 비결정 코드에 대해 동일한 단위 테스트를 반복적으로 실행하여 디버깅하고 있습니다.경쟁 조건 버그 찾기

간단한 해결책은 없지만 시스템 스케줄러 (Linux)가 각 실행시 선점을 변경하여 발견 된 버그를 발견 할 수있는 휴리스틱 도구가 있습니까?

+0

작성한 프로그램 언어는 무엇입니까? – jgr208

+0

언어는 C++ – tmlen

+0

입니다. 소스에서 컴파일하거나 바이너리 만 가질 수 있습니까? – jgr208

답변

0

나는이 작업을 수행 한 Jinx Debugger이라는 도구를 알고 있었지만 더 이상 사용할 수 없습니다.

일반적인 해결책은 코드를 신중하게 분석하고 잠금 정확성을 "증명"하는 것입니다. 이것은 약간의 예술입니다.

실험적인 접근을 위해 임의의 시간 동안 sleep하고 오랫동안 실행하는 함수 호출로 코드를 계측 할 수 있습니다. 당신의 함수는 밀리 세컨드의 무작위 수의 시간 동안 약간의 시간 동안 잠을 잘 수 있습니다.