Windows에서 프로세스를 어떻게 추적/프로파일할 수 있나요?

Windows에서 프로세스를 어떻게 추적/프로파일할 수 있나요?

가끔 SQL Server 문제를 조사할 때 Visual Studio 디버거를 연결하고 호출 스택을 보고 무엇을 하고 있는지 파악하는 것이 유용하다는 것을 알았습니다(공용 기호를 사용할 수 있으며 종종 유용하다고 추론할 수 있음). 메소드 이름의 정보).

추론할 수 있는 내부 정보 유형의 좋은 예는 다음과 같습니다.이 블로그 게시물에서내 시도에 영감을주었습니다.

그러나 이는 꽤 시간이 많이 걸리고 지루한 과정이 될 수 있습니다. 일반적으로 나는 디버거를 연결한 루프에서 관심 있는 코드를 실행한 다음 조사 중인 문제에 흥미로워 보이는 호출 스택에 도달할 때까지 계속 중단하고 계속합니다. 그런 다음 코드를 단계별로 실행하고 호출되는 메서드 이름을 확인할 수 있습니다. 그러나 이것은 오랜 시간이 걸립니다.

짧은 기간 동안 호출된 모든 메소드를 간단히 기록하고 나중에 로그 파일을 검토할 수 있도록 이를 자동화할 수 있는 방법이 있습니까?

답변1

내가 착각한 것이 아니라면 아마도 프로세스 모니터(일명 procmon)를 찾고 있을 것입니다. 당신은 그것을 얻을 수 있습니다이 마이크로소프트 웹사이트.

특히 "스택 요약" 메뉴 옵션에는 이러한 종류의 정보가 있습니다. 자세한 내용은 섹션을 참조하세요.PM2-6: 스택 풀기

여기에 이미지 설명을 입력하세요

답변2

그만큼프로파일러더 높은 버전의 Visual Studio에서는 이 작업을 수행하는 데 사용할 수 있습니다.

예제 출력

스크린샷

(그리고대답은 여기에이것이 왜 유용한지 보여줍니다)

아니면 추가적으로Windows 성능 도구 키트무료이며 훨씬 더 많은 일을 할 수 있습니다. 이에 대한 좋은 비디오 시리즈는 다음에서 찾을 수 있습니다.https://channel9.msdn.com/Search?term=Defrag%20tools%20wpt#ch9Search

관련 정보