단일 스레드 내에서 일부 프로그램에 의해 수행되는 작업의 양을 추적해야합니다. 그렇게하기 위해 (C) 코드에 최소한의 영향을주고 싶습니다. 모든 X 명령어의 일부 코드를 트리거하는 방법이 있습니까?모든 X 명령어를 건너 뛰십시오.
나는 컴파일 타임에 모든 X 명령어를 체크하는 것에 대해 생각하고 있었다. 그것은 브랜치 내부에서 괜찮을 것이지만, (깊이있는 브랜치 분석없이) 모든 점프마다 체크가 필요합니다 ... 많은 점프가있는 프로그램에서는 비용이 많이 듭니다.
코드의 분기를 분석하여 (컴파일시) 검사가 균등 한 장소에 배치되도록하는 도구/기술이 있습니까?
수표의 비용 견적은 무엇입니까 (10 가지 지침 또는 1000입니까?). 얼마나 자주 체크하고 싶습니까 (X가 무엇입니까?)? 왜'stepi'에서'gdb'를 사용하지 않습니까? (프로그램 속도가 느려질 것입니다.) – osgx
이것은 명목상으로 달리기 때문에 솔루션은 가능한 한 가벼워 야합니다. 따라서 1000 개 이상의 지침이 더 많습니다. (그리고 gdb가 없다) – Simon
당신이 요구하는 것은 그 일을하는 CPU가 없다면 비현실적이다. 이론적으로 컴파일러의 어셈블러는 계속 추적 할 수 있지만 대부분의 함수에는 여러 코드 경로가 있기 때문에 언제든지이 코드를 보지 않을 것입니다. 대신, 각 스레드에 할당 된 CPU 시간을 추적하는 OS 관련 기능을 사용하는 것이 나을 것입니다. – mah