디버깅 중인 모든 것들그물
최종 해결 방안은 사용dotPeek from Jetbrains이다.대다수의 사람들이 그것을 사용하여 역번역을 한다.NET 프로그램 집합 및 소스 코드 찾아보기허허, 홈페이지에도 네가 그것을 써서 무엇을 해야 한다고 쓰여 있다.
네, NuGet에서 역컴파일된 Google SDK를 가져와서 볼 수 있습니다.dotPeek의 역컴파일 보기는 GitHub에서 발표한 것보다 훨씬 좋습니다.최근에 나는 왜 누군가가dot Peek을 필요로 하는지 정말 알고 싶다. 대부분의 코드는 원본이고, 아무것도 보지 못한다.NET는 바이너리로만 연관됩니다.네, 제3자의 내부 라이브러리에 대한 해킹
.dll
이 유용할 수 있지만 흥미롭지도 않고 자주 일어나지도 않습니다.이런 특수한 상황에서 소스 프로젝트의 소스 코드가 매우 복잡하고 심지어 깨끗한 기계에서 컴파일할 수 없을 때dotPeek을 사용하여 코드를 조회할 수 있다.참고로, 아니오, 당신은dotPeek을 사용하여 제3자 코드를 디버깅할 수 없고, 적어도 단독으로 디버깅할 수 없습니다.하지만 Visual Studio는❤ dotPeek은 제3자 코드를 디버깅할 수 있습니다.
기호 서버
이를 정확하게 이해하기 위해서, 우리는 VisualStudio가 어떻게 어떤 것을 디버깅하는지 알아야 한다.간단하게 말하면, 우리는 당신의 코드를 볼 것입니다.디버그 설정에서 컴파일할 때net 컴파일러는 두 가지 일을 생성합니다. (더 많지만, 가능한 한 간단합니다.)
디버그 기호는 실제로도 발표 모드에서 생성되지만, 제한을 받아서 우리가 작성한 코드를 디버깅하는 데 도움을 줄 수 없습니다.어쩌면 이것은 단독적인 토론일지도 모른다.
.pdb
파일의 정보를 사용하여 컴파일된 바이너리 파일의 내용과 원본 코드에 대응하는 메타데이터를 찾을 것입니다. (마찬가지로 간단하게 말하자면)그것 없이는 디버깅을 할 수 있지만, 무엇을 하고 있는지, 원본 코드에 대한 위치를 알 수는 없을 것이다.분명히 .pdb
코드를 수정하고 컴파일할 때마다 변화가 발생한다.그래서 너는 이제 자신의 코드를 디버깅할 수 있다.너도 디버깅할 수 있어.NET 코드 자체는 기본이 아닙니다.다음 행으로 이동할 경우:
Guid g = Guid.NewGuid();
IDE가 디버깅하는 방법을 모르기 때문에 아무 일도 일어나지 않습니다. IDE에 .pdb
파일이 없습니다.그러나 다음과 같이 쉽게 열 수 있습니다.Tools->Options->Debugging->General
에서 "내 코드만"이 닫혀 있는지 확인하십시오.지금 줄을 서보세요.VS는 네가 무엇을 하고 싶은지 물어볼 것이다(나는 옵션 1이나 옵션 2를 선택할 것이다. 네가 화를 내고 싶은 정도에 달려 있다). 이제 너는 이 방법에 들어갈 수 있다!
여기에서, 당신은 내가 Windows에서 이것을 디버깅하고 있다는 것을 알 수 있습니다. 만약 당신이 Visual Studio: 라고 말하는 것을 아직 듣지 않았다면, 호출이 OLE 32 서브시스템으로 전송되었기 때문입니다.
기호 서버의 두 번째 옵션은 "Nuget. org symbol Server"입니다.이것은nuget에서 디버그 기호를 다운로드할 수 있습니다.이런 방식으로 외부 코드를 조직하고 디버깅하다.그러나 이런 방법의 심각한 한계는 가방에 의존하는 것이다.패키지 작성자는 디버그 기호를 패키지의 바이너리 파일과 함께 발표해야 합니다.구글은 없습니다. 우리는 원인을 알고 있습니다.
너 자신의 진상 원천
네가 거의 모든 것을 디버깅할 수 있다는 것을 알고 있는 이상, 디버깅 기호만 있으면, 우리는dot Peek으로 돌아갈 수 있다.DotPeek의 멋진 기능을 보십시오. 그러나 잘 알려지지 않은 것은dotPeek 자체가 기호 서버를 충당할 수 있다는 것입니다. 이것은 IDE(VS)를dotPeek에 가리키고 기호 생성 작업을 마운트 해제할 수 있음을 의미합니다.이것은 반컴파일러이기 때문에dotPeek 서버에서 디버깅하는 정보는 자연스러웠다. 바이너리 파일을 분석하고 이해했으며, 관련 원본 코드를 표시하여 예쁘게 만들었다.
따라서 다음 단계는 필요한 패키지/프로그램 집합을 프로그램 집합 자원 관리자에 불러오고 디버깅할 패키지/프로그램 집합만 불러올 수 있습니다.디버그 기호를 만드는 것은 긴 작업일 수 있음을 기억하십시오. 따라서 최소한으로 유지하는 것을 권장합니다.이 특정한 가방은 약 10초 정도 걸릴 수 있지만, 전체 가방을 디버깅해 보십시오.NET SDK를 시작하려면 몇 십 분이 걸릴 수 있습니다.
그런 다음
Tools->Symbol Server
로 이동하여 서버를 시작합니다.네가 처음 이렇게 했을 때, 그것은 약간의 대화상자를 표시할 수 있지만, 나는 이미 그것을 잃었고, 그것이 무엇인지 기억하지 못한다.나는 그 중 하나가 내가 만든 Assembly Explorer가 연 것만 디버그 기호를 만드는 것이라고 생각한다.어쨌든, 이 모든 것을 바꿀 수 있는 설정이 있다.dotPeek의 상태 표시줄에는 서버 주소 및 디버그 기호 생성 진행 상태와 같은 기본 정보가 표시됩니다.서버는 거의 즉시 시작되고 요청에 따라 내용만 생성됩니다. 즉, IDE에서 특정한 방법으로 들어갈 때
.dll
첫 번째 단계로 들어갈 때 지연됩니다.마지막으로 DotPeek 기호 서버의 주소를 VS 설정에 추가합니다.
이렇게 하면 전체 URL을 기호 파일 위치로 추가하기만 하면 됩니다.VS UI를 사용할 때 다른 모든 컨텐트를 기본값으로 유지하면 명확하지 않습니다.
이제 디버그 세션을 시작하고 정상적인 '개입' 을 관찰하십시오. 마치 당신 자신과 같습니다.
한편 이 글은originally published on my blog이다.
Reference
이 문제에 관하여(디버깅 중인 모든 것들그물), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/aloneguid/debug-anything-in-net-4i0f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)