2012-03-13 2 views
44

Resharper를 사용하여 decompiled dll로 디버깅하는 방법이 있습니까? 그렇다면 어떻게해야합니까?Resharper 제삼자 decompiled dll을 디버그

예를 들어 내가 디 컴파일하고 소스를 볼 수있는 System.Web.Http.ApiController으로 디버깅하려고합니다.

중단 점을 설정했지만 디버깅 할 때 응용 프로그램을 실행할 때 디 컴파일 된 중단 점이 중단되지 않습니다.

+0

Visual Studio 디버깅 옵션 (도구 -> 옵션 -> 디버깅 -> 일반)을 이미 살펴 보았습니까? 예 : * 내 코드 만 사용 (관리 전용) *을 해제해야합니다. – brgerner

+0

ReSharper 6에는 자동 디 컴파일 기능이 있습니다. 아마도 디 컴파일 된 소스로 충분할 수 있습니다. – brgerner

답변

6

지금까지 내가

그러나, this article에서는 시각과 .NET 소스에 디버깅하는 방법에 대해 설명이 (V6.1까지) ReSharper에서를 사용하여 디 컴파일 .NET 소스 코드를 디버깅 할 수 없습니다 알고로 Studio 2010 - VS의 다른 버전에 대한 지침이 필요한 경우 페이지 상단의 '기타 버전'링크 만 사용하십시오.

+0

dotPeek을 사용하여 DLL을 디 컴파일 한 다음 VS에서 심볼 서버를 설정할 수 있습니다. 이 기사보기 https://medium.com/jackspektor/not-just-my-code-how-to-debug-third-party-libraries-without-decompiling-them-8e47e706dbe7 –

1

해당 코드를 보려면 *.pdb 파일이 있어야합니다.

그렇지 않으면 바이너리 파일을 디 컴파일하는 것이 도움이 될 수 있습니다. Telerik은 무료로 사용할 수 있습니다 JustDecompile.

하지만 은 타사 공급자의 라이센스 계약을 위반할 수 있습니다.

10

아니요, Visual Studio 및 ReSharper만으로는 가능하지 않지만 다른 제품으로는 .NET Reflector이 있습니다.

VSPro 버전에는 .vdb 파일을 생성하고 이미 빌드 된 .NET 어셈블리의 소스 코드를 역 컴파일 할 수있는 "소스가없는 경우에도 Visual Studio 디버거를 사용하여 어셈블리 디버깅"기능이 있습니다.

경험상 일부 어셈블리에는 몇 가지 문제가 있지만 그 이유를 기억할 수 없어 도움이 될 수도 있고 도움이되지 않을 수도 있습니다.

ReSharper를 사용하면 리플렉터가 디 컴파일 된 소스를 생성하는 것과 거의 같은 방식으로 어셈블리에서 디 컴파일 된 소스 코드를 볼 수 있지만 ReSharper를 사용하여 소스 파일로 코드를 디버깅 할 수는 없습니다.

6

[전체 공개 - Telerik 직원] Telerik의 최신 버전 인 JustCode을 사용하면 Visual Studio를 벗어나지 않고 디 컴파일 된 코드를 디버깅 할 수 있습니다. 자세한 내용은 here 기능을 알리는 블로그 게시물을 참조하십시오.

+1

이것은 나를. .NET Reflector는 Visual Studio 2010을 계속 충돌 시켰고 Resharper는 디 컴파일 된 코드를 볼 수는 있지만 디버깅을 허용하지 않았습니다. – Dwayne

+1

하지만 싸구려가 아니에요 :) –

+0

차라리 그 많은 돈을 위해 그것을 디버깅하고 싶지 않아 LOL – sotn

31

예, Resharper 9.0을 사용할 수 있습니다 (이전 버전은 확실하지 않음). 이동은 "ReSharper에서 메뉴"> "윈도우"> "국회 탐색기"

그런 다음 바로에
클릭 (그것에 +로) 왼쪽의 첫 번째 버튼이 어셈블리를 추가 할 수

"Generate Pdb ..."(완료 될 때까지 기다리십시오)를 선택하십시오. 이제 코드를 분해 할 수 있습니다.
참고 그러나 옌스가 말한대로, 아마 휴식 라이센스 조건

+4

나는 이것을 자세히 설명하는 블로그 게시물을 썼습니다 : http://blog.pglazkov.com/2016/02/how- to-debug-any-library-source-code.html –

+1

이미 디버깅중인 경우 "디버그"> "Windows"> "모듈"로 이동하십시오. 디버깅 할 어셈블리를 선택하고 Resharper가 이전에 생성 한 "pdb"를로드하십시오. – polkduran

+0

이 팁을 사용하려면 Visual Studio의 _Call Stack_ 창에서 스택 프레임의 상황에 맞는 메뉴에서 _Show External Code_를 선택해야합니다. – rgb

5

는 총회 탐색기 창에서 어셈블리를 선택하고 도구 모음에서 프로젝트 또는 상황에 맞는 메뉴 프로젝트 내보내기를 선택 내보내기를 클릭합니다.

선택을 취소 "내 코드 만 사용"옵션 : (- -> 옵션 -> 디버깅> 일반 도구)

더 많은 정보 또한 here

, 메인 디버깅 옵션 페이지에서이 구성을 확인

의 선택을 취소

는 "원본 서버 지원 사용"옵션

확인 옵션 "스테핑 .NET 프레임 워크 소스를 사용"

원본 파일과 정확히 일치하도록 원본 파일 필요

+1

모든 것을 시도한 후에,이 설정은 나를 위해 그것을했다, 고마워! –

관련 문제