저는 임베디드 시스템에서 실행되는 상당히 큰 프로젝트 작업을하고 있습니다. 어떤 스레드가 어떤 클래스에서 어떤 함수를 호출했는지와 어떤 시간에 어떤 로깅 기능을 추가하고 싶습니다. 예, 여기에 로그 파일의 전형적인 라인의 모습 내용은 다음과 같습니다내 전체 프로젝트에서 어떤 클래스의 어떤 함수를 호출하고 어떤 시간에 스레드를 기록 할 수 있습니까?
시간 - 스레드 이름 - 기능 이름 - 클래스 이름
나는 어떤을 실행할 것의 _penter 후크 함수를 사용하여이 작업을 수행 할 수 있다는 것을 알고 내 프로젝트 내에서 호출 된 모든 함수의 시작 부분에 있습니다 (출처 : http://msdn.microsoft.com/en-us/library/c63a9b7h%28VS.80%29.aspx). 그런 다음 _penter가 호출 된 함수, 클래스 및 스레드를 찾는 데 도움이되는 라이브러리를 찾을 수있었습니다. 그러나 VC++ 특정 이후이 솔루션을 사용할 수 없습니다.
비 VC++ 구현에서 지원하는 다른 방법이 있습니까? ARM/Thumb C/C++ 컴파일러 인 RVCT3.1을 사용하고 있습니다. 또한 멀티 스레딩에서 발생할 수있는 문제를 추적하는 더 좋은 방법이 있습니까?
, 감사합니다보리스
주의 : 멀티 스레딩의 문제는 지연에 매우 민감하므로 heisenbugs에 문제가있을 수 있습니다. –
Matthieu : 민감성을 알고 있지만 heisenbug는 무엇입니까? – BVB
http://www.google.se/search?q=heisenbug – Macke