문제

windbg 사용자 모드 원격 디버깅 세션을 시작하는 데 가장 선호하는 기술은 무엇입니까?다른 기술보다 이 기술을 선호하는 이유는 무엇입니까?(장점/단점)

Windows 도움말 파일용 디버깅 도구의 "원격 디버깅" 섹션에 설명된 대로 windbg를 사용하여 사용자 모드 원격 디버그를 수행하는 방법에는 최소한 네 가지가 있습니다.

  1. 대상에서 앱을 실행한 다음 호스트 windbg에서 앱에 연결합니다.
  2. 호스트 windbg가 원격.exe를 사용하여 대상에서 앱을 시작하도록 합니다.
  3. "스마트 클라이언트" 호스트 windbg가 대상에서 실행 중인 프로세스 서버를 통해 대상에서 앱을 실행하도록 합니다.
  4. "-server" 옵션을 사용하여 대상 시스템에서 windbg 인스턴스를 실행하여 서버를 자동으로 시작한 다음 두 번째 시스템에서 서버에 연결합니다.
도움이 되었습니까?

해결책

"최고의" 솔루션은 없습니다.각 가능성에는 장점과 단점이 있으므로 모두 이해하는 것이 좋습니다.이는 다음과 같은 여러 요인에 따라 달라집니다.

  • 기호는 어디에 있나요?
  • OS 기호를 다운로드하기 위해 인터넷에 액세스할 수 있는 PC
  • 서버에 복사할 수 있는 데이터의 양(단일 Exe인 경우 클라이언트가 더 잘 받아들이는 경우가 많음)
  • 클라이언트와 서버 사이의 대역폭은 얼마입니까
  • CDB/WinDbg만 사용하는 다른 명령이 필요합니까?CMD에 액세스한 다음 Remote.exe를 고려하십시오.
  • 서버 측에서 사용할 수 있는 사람, 많은 비밀스러운 명령을 쉽게 말할 수 있는 디버깅 전문가 또는 명령 프롬프트를 시작하는 방법을 거의 모르는 일반 사용자
  • 양쪽 모두 개인 네트워크에 있으므로 서로 액세스하려면 "중간자" 서버가 필요합니다(또는 대안으로 포트 전달이 필요합니다. 이는 IT 담당자가 원하지 않으며 설정하는 데 며칠이 걸릴 수 있음). 위로)

이 4가지 옵션 중에서 클라이언트는 종종 귀하가 수행하는 작업을 정확히 보고 싶어하므로 RDP 세션, Teamviewer 또는 이와 유사한 것이 필요하다는 점을 잊지 마십시오.그것은 그들이 이해하는 것입니다.

다른 팁

옵션 1은 가장 간단하기 때문에 제가 가장 좋아하는 방법입니다.WinDbg가 올바른 작업 디렉터리를 설정하고 명령줄 인수를 전달하는 등에 대한 걱정 없이 일반적인 방법으로 앱을 시작할 수 있습니다.

다행히도 이것이 작동하지 않는 경우는 본 적이 없습니다!

나는 옵션 4(-server)를 사용하는 경향이 있는데, 그 이유는 TCP 연결이 시간 초과될 때까지 커널 디버거를 오랫동안 중단할 때 "팝"하지 ​​않는 유일한 옵션이기 때문입니다.그러나 이것은 더 복잡하고 완전히 만족스럽지 않습니다.그래서 저는 "모범 사례"를 찾고 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top