Windbg 사용자 모드 원격 디버깅 세션을 시작하는 최고의 기술
-
09-06-2019 - |
문제
windbg 사용자 모드 원격 디버깅 세션을 시작하는 데 가장 선호하는 기술은 무엇입니까?다른 기술보다 이 기술을 선호하는 이유는 무엇입니까?(장점/단점)
Windows 도움말 파일용 디버깅 도구의 "원격 디버깅" 섹션에 설명된 대로 windbg를 사용하여 사용자 모드 원격 디버그를 수행하는 방법에는 최소한 네 가지가 있습니다.
- 대상에서 앱을 실행한 다음 호스트 windbg에서 앱에 연결합니다.
- 호스트 windbg가 원격.exe를 사용하여 대상에서 앱을 시작하도록 합니다.
- "스마트 클라이언트" 호스트 windbg가 대상에서 실행 중인 프로세스 서버를 통해 대상에서 앱을 실행하도록 합니다.
- "-server" 옵션을 사용하여 대상 시스템에서 windbg 인스턴스를 실행하여 서버를 자동으로 시작한 다음 두 번째 시스템에서 서버에 연결합니다.
해결책
"최고의" 솔루션은 없습니다.각 가능성에는 장점과 단점이 있으므로 모두 이해하는 것이 좋습니다.이는 다음과 같은 여러 요인에 따라 달라집니다.
- 기호는 어디에 있나요?
- OS 기호를 다운로드하기 위해 인터넷에 액세스할 수 있는 PC
- 서버에 복사할 수 있는 데이터의 양(단일 Exe인 경우 클라이언트가 더 잘 받아들이는 경우가 많음)
- 클라이언트와 서버 사이의 대역폭은 얼마입니까
- CDB/WinDbg만 사용하는 다른 명령이 필요합니까?CMD에 액세스한 다음 Remote.exe를 고려하십시오.
- 서버 측에서 사용할 수 있는 사람, 많은 비밀스러운 명령을 쉽게 말할 수 있는 디버깅 전문가 또는 명령 프롬프트를 시작하는 방법을 거의 모르는 일반 사용자
- 양쪽 모두 개인 네트워크에 있으므로 서로 액세스하려면 "중간자" 서버가 필요합니다(또는 대안으로 포트 전달이 필요합니다. 이는 IT 담당자가 원하지 않으며 설정하는 데 며칠이 걸릴 수 있음). 위로)
이 4가지 옵션 중에서 클라이언트는 종종 귀하가 수행하는 작업을 정확히 보고 싶어하므로 RDP 세션, Teamviewer 또는 이와 유사한 것이 필요하다는 점을 잊지 마십시오.그것은 그들이 이해하는 것입니다.
다른 팁
옵션 1은 가장 간단하기 때문에 제가 가장 좋아하는 방법입니다.WinDbg가 올바른 작업 디렉터리를 설정하고 명령줄 인수를 전달하는 등에 대한 걱정 없이 일반적인 방법으로 앱을 시작할 수 있습니다.
다행히도 이것이 작동하지 않는 경우는 본 적이 없습니다!
나는 옵션 4(-server)를 사용하는 경향이 있는데, 그 이유는 TCP 연결이 시간 초과될 때까지 커널 디버거를 오랫동안 중단할 때 "팝"하지 않는 유일한 옵션이기 때문입니다.그러나 이것은 더 복잡하고 완전히 만족스럽지 않습니다.그래서 저는 "모범 사례"를 찾고 있습니다.
제휴하지 않습니다 StackOverflow