실행 중인 프로세스/스레드의 호출 스택을 어떻게 볼 수 있나요?

실행 중인 프로세스/스레드의 호출 스택을 어떻게 볼 수 있나요?

어떤 분이 나한테 좀 사달라고 하더군요.호출 스택또는스택 추적그가 나를 위해 분석할 수 있도록 실행 중인 프로세스를 설명합니다.

그 정보를 어떻게 얻을 수 있나요?

답변1

  1. 얻다프로세스 탐색기.

  2. 할 수 있게 하다모든 프로세스에 대한 세부 정보 표시~로부터파일메뉴:

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

  3. 기본 창에서 관심 있는 프로세스를 선택합니다.

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

  4. 선택한 프로세스에 대한 컨텍스트 메뉴를 열고(마우스 오른쪽 버튼 클릭)속성:

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

  5. 스레드탭을 클릭하면 해당 프로세스 내에서 실행 중인 스레드 목록을 볼 수 있습니다.

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

  6. 관심 있는 스레드를 선택하고스택단추:

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

  7. 이제 프로세스 탐색기에 선택한 스레드에 대한 현재 호출 스택이 표시됩니다.

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

기호

문제 해결에서 더 자세한 정보가 필요한 경우 디버깅을 로드하는 것이 매우 도움이 되는 경우가 많습니다.기호프로세스 탐색기로 들어갑니다. 방법은 다음과 같습니다.

  1. Windows 디버거가 아직 설치되어 있지 않은 경우 다음을 설치해야 합니다.Windows용 디버깅 도구첫 번째.

  2. 프로세스 탐색기에서 다음을 엽니다.기호 구성...~로부터옵션메뉴:

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

  3. 디버깅 도구(또는 다른 Windows 디버거)가 설치되어 있는 경우 Process Explorer가 자동으로 파일 을 찾습니다 dbghelp.dll. 그렇지 않으면 여기에서 올바른 경로를 설정하십시오.

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

    그만큼기호 경로다음과 같아야 합니다:

    SRV*C:\Symbols*http://msdl.microsoft.com/download/symbols
    

    조정하고 싶은 유일한 부분은 입니다 C:\Symbols. 디버깅 기호가 캐시되는 위치입니다.

답변2

clr 프로세스 스택이 필요한 경우 ProcInsp를 사용할 수 있습니다(저는 개발자이고 이 도구는 무료로 사용할 수 있습니다).

  1. 설치하다ProcInsp
  2. 관심 있는 프로세스를 찾아 클릭하세요. 프로세스 목록
  3. 스레드를 클릭합니다(ProcInsp는 앱의 진입점을 스레드 이름으로 표시하며 .net 인프라의 모든 프레임을 건너뜁니다). 스레드 목록
  4. 진입점이 강조 표시된 스택 추적이 표시됩니다. 스택트레이스

관련 정보