2009-09-01 2 views
3

중단 점을 설정할 때 코드의 특정 부분을 건너 뛰고 싶습니다. 예를 들어, 나는 카드 더미를 만들기 위해 52 번 반복하는 코드 블록을 가지고있다. 이것은 제대로 작동하고 있으며, F11을 눌러 블록을 계속 돌진하지 않아도됩니다. 디버거가 다음 메서드 호출로 넘어갈 수 있도록이 "건너 뛸"수있는 방법이 있습니까?전체 코드 블록을 단계별로 실행하는 방법은 무엇입니까?

언어 및 IDE 오른쪽 루프

  • 선택 "커서로 실행"
  • 후 첫 번째 줄에 단추로 클릭하여 다음

    • 를 수행

    답변

    2

    은 옵션 인 경우 함수에 그 코드를 이동할 수 있고이 항상 같이

    를 디버깅하는 동안 생략 될 수 있도록 함수에 [DebuggerStepThrough] 속성을 적용

    using System.Diagnostics; 
    
    namespace MyNamespace 
    { 
        public class Utilities 
        { 
         [DebuggerStepThrough] 
         public ThisIsAVeryLongMethod() 
         { 
          // 
          // Code 
          // 
         } 
        } 
    } 
    
    당신은 단계별 때 코드에서 이제

    , 디버거 방법에 가서 당신이 조금 더에이이 동작하도록되어 얼마나 정교한 다음 줄

    ShortMethod1(); 
    ThisIsAVeryLongMethod(); 
    ShortMethod2(); 
    
    +0

    나는 물을 예정 였지만 Google은 제 친구입니다. 나는 이것을 좋아하고, 지금 당장 필요한 구체적인 목적을 위해 최선을 다한다. 대답을 편집 할 수는 없지만 누군가가 [DebuggerStepThrough] 특성을 사용하는 방법과 System.Diagnostics 네임 스페이스가 필요하다는 사실을 설명하기 위해이를 편집해야합니다. – Pete

    +0

    클래스 수준에서도 작동합니까? 디버깅이 끝나고 올바르게 작동하고 있으므로 클래스의 모든 메소드를 완전히 단계별로 설명하고 싶습니다. –

    5

    VS 2008에서 C#을 이렇게하면 해당 줄에서 중단 점을 설정하고 F5를 누른 것처럼 코드를 실행 한 다음 중단 점을 한 번 삭제하면됩니다.

    참고 : 루프 코드의 실행이 다른 실제 중단 점에 도달하면 클릭 한 위치가 아닌 실행이 중단됩니다. 이런 일이 일어날 수 있다고 생각된다면 모든 중단 점을 비활성화하십시오. 위의 트릭을 수행하고 모든 중단 점을 다시 활성화하십시오.

    +0

    로 진행되지 않습니다? 나는 그것을 시험해 보았고 마치 코드 블록에서 중첩 된 if, while, while 등으로 이것을 시도한다면 실제로 커서로 이동하지는 않지만 if 및/또는 while과 같은 것으로 보인다. 나는 조금 노비시 (noobish)하기 때문에 그것은 단지 약간의 "시행 착오"가 필요할지도 모른다. :) – Pete

    5

    설정 다른 당신이 종료 할 브레이크 포인트 및 F5 키를 눌러 :

    +0

    흥미 롭습니다 ... 두 개의 중단 점을 설정하면 이미 디버그 모드에서 "디버깅 시작"명령을 사용하여 호출 된 모든 코드를 건너 뛸 수 있습니까? – Pete

    +1

    실제로 할 수 있습니다 :) 그러나, 디버그에서 실행될 때,'F5'는'Continue'라고합니다. –

    2

    나는 블록을 건너 뛸 수있는 방법을 알고하지 않습니다,하지만 당신은 블록 이후에 중단 점을 넣어 또는 런 사용할 수 있습니다 커서 (Ctrl-F10, 제 생각에는).

    관련 문제