2010-02-01 2 views
2

최근 우분투를 MacOSX로 전환했습니다.MacOSX에서 멀티 스레드 C++ 디버깅을위한 유용한 도구가 있습니까?

최근 멀티 스레딩을 많이 사용하기 시작했습니다.

MacOSX에서 멀티 스레드 응용 프로그램을 디버깅하기 위해 g ++에 좋은 추가 기능/대안이 있습니까? 특히, 나는 클래스/구조체를 "찌르는"도구에 관심이있다. 포인터를 따르고, 회원을 확장하고, 회원의 가치를 보여줄 수 있습니다.

고마워요!

+0

내가 찾은 가장 좋은 방법은 ** 원하는 ** 로그 **입니다! 나는 디버거가 멀티 스레드 프로그램에서 작동한다고 믿지 않았다. 나는 학생이며, 아마도 나의 관찰은 당신의 경우와 덜 관련이 있을지도 모른다. – AraK

+0

우선, 스레드 안전 로거가 필요합니다. 또한 로깅은 스레드가 동기화되고 크게 작동하는 방식을 바꿀 수 있으므로 로깅을 설정할 때 버그가 나타나지 않을 수 있습니다. – matt

+0

@matt C/C++에는 여러 가지 훌륭한 로깅 프레임 워크가 있습니다. 우선,'printf'는'POSIX'에서 스레드로부터 안전합니다. – AraK

답변

4

Valgrind. 특히 Helgrind.

당신이 제안한 것처럼 GUI 도구는 아니지만 많은 시간을 절약 할 수 있습니다.

0

Xcode와 Shark 및 CHUD는 원하는 것을 수행하지 않습니까?

0

스핀 및 프롬 넬을 살펴보십시오. Spin은 코드가 안전과 생동감을 잃어 버릴 수있는 모든 상태를 관통하는 모델 검사기입니다. 원하는대로 스핀을 사용하면 스스로 단계를 밟을 수 있으며 다음에 실행할 옵션과 필요한 값을 선택할 수 있습니다. 당신은 C와 비슷한 promela 코드에서 테스트하고자하는 섹션을 작성해야합니다. 스핀은 일반적인 디버깅 도구보다 낫습니다. 멀티 스레드 프로그램은 매번 같은 방식으로 실행되지 않으므로 모델 검사기가 표준 디버거보다 유용합니다.

관련 문제