Windows에서 동기화 객체 (Mutex, Events, Semaphores)를 모니터링하는 도구가 있습니까?
-
03-07-2019 - |
문제
Windows에서 프로세스 동기화 객체의 상태를 모니터링하는 도구가 있습니까? 즉.
- 이벤트/mutex : 신호 전지 신호
- 세마포어 : 카운트
더 나은 방법으로, 어떤 스레드가 무엇을했는지 로그를 작성하는 것이 좋습니다. "스레드 #5421 신호 이벤트 -StreeVt"
해결책
핸들 사용법 : 핸들 -S ==> Print count of each type of handle open.
편집하다:
프로세스 탐색기를 사용하여 프로세스 동기화 객체의 상태를 모니터링하는 방법.
열린 프로세스 탐색기
- 프로세스 섹션에서 EXE를 클릭하십시오 (예 : MyApp.exe)
- 딸깍 하는 소리
Show Lower Pane
(또는 누릅니다Ctrl+L
). 여기에는 모든 동기화 객체가 표시됩니다. (예 : Myevent) - 동기화 객체를 마우스 오른쪽 버튼으로 클릭하고 (예 : Myevent의 경우) 컨텍스트 메뉴에서 속성을 클릭하십시오.
이것은 동기화 객체의 세부 사항을 가져옵니다. 에서
Details
탭, 당신은 볼 수 있습니다Event Info
(동기 객체 인 경우 이벤트 인 경우) : 상태에 대한 정보를 제공합니다 (동기화 객체가 신호를 받는지 여부)Semaphore info
(동기 대상이 세마포어 인 경우) : 세마포어 수를 제공합니다.
다른 팁
인텔의 스레드 체커와 병렬 스튜디오를 살펴보십시오. 대부분의 도구는 Visual Studio 위에 있습니다.
http://software.intel.com/en-us/intel-vtune/
스레드 유효성 검사기 당신이 묘사하는 일을합니다.
스레드, 잠금 상태, 개별 스레드 개체를 모니터링합니다. 인텔의 스레드 검사기보다 훨씬 빠르지 만 세부 수준이 다릅니다.
WindBG는 도움이 될 수 있지만 사용 방법을 배워야합니다.
제휴하지 않습니다 StackOverflow