2010-04-28 3 views
6

나는 이것을 잠시 생각해 보았습니다 - 코드 중단 점/프로그램 중단 점이 있습니까? 조건부? 예를 들어, " 일 때 변수가 이 될 때 값이 될 때 디버거를 열고 연다"와 같은 것을 지정할 수 있습니까? (특히 루프가 늦은 루프 값의 루프 실행을 디버그 할 때 유용합니다.)조건부로 중단 점을 설정하거나 코딩 할 수있는 방법이 있습니까?

디버깅이 다른 IDE에서 다르게 구현 되었기 때문에 IDE 관련있을 것이라고 생각합니다. 모든 IDE에서이 작업을 수행하는 방법을 알고 싶지만 특히 Eclipse와 Visual Studio에서는 관심이 있습니다.

답변

5

이것은 Visual Studio에서 가능합니다. 일반적으로 왼쪽 여백을 클릭하여 중단 점을 삽입 한 다음 해당 중단 점을 마우스 오른쪽 단추로 클릭 할 수 있습니다. 오른쪽 클릭 메뉴의 옵션 중 하나는 "Condition ..."이며 조건자가 충족되면 해당 중단 점의 중단 만 디버거에 알리는 조건을 지정할 수 있습니다.

+0

감사합니다! 어떤 단서 어떻게이 일식에서 달성하기 위해? 지금 나는 그 용어를 알고 있지만 가능하면 꽤 쉽게 구글로 쓸 수 있습니다. – froadie

+0

불행히도, 아니오. 나는 마지막으로 3 ~ 4 년 전에 이클립스를 사용했고 간신히 기억하고있다./ – Tejs

+0

좋아, 나는 똑같은 기술을 시도해 보았다. 어쩌면 나는 그것을 새로운 대답으로 게시 할 것이다. 도와 주셔서 감사합니다 – froadie

1

대부분의 IDE는 이러한 이유로 인해 조건부 중단 점을 허용합니다. Visual Studio에서 여백에있는 중단 점의 빨간색 점을 마우스 오른쪽 버튼으로 클릭하고 거기에서 조건 대화 상자를 열 수 있습니다. Visual Studio의 중단 점 창에서 조건 대화 상자로 이동할 수도 있습니다. 나는 이클립스에 익숙하지 않다.

3

Visual Studio에서 조건부 중단 점을 선언적으로 설정할 수 있습니다. 이는 일반적인 중단 점과 같지만 특정 조건이 true 일 때만 중단됩니다. 조건은 지역 변수와 중단 점이 설정된 위치에서 액세스 가능한 모든 것을 사용할 수 있습니다. 모든 중단 점 (빨간색 점)을 마우스 오른쪽 버튼으로 클릭하고 "조건 ..."을 선택하십시오.

또한 .NET 언어는 프로그래밍 방식으로 실행을 중단하기 위해 Debugger.Break() 메서드를 호출 할 수 있습니다. 이것은 또한 if 문 내에서 수행 할 수 있습니다

if (count > 8 && Debugger.IsAttached) 
    Debugger.Break(); 
+0

멋진! 개발 환경과 프로덕션 환경간에 전환 할 때 디버깅 코드를 쉽게 비활성화/활성화 할 수있는 모든 종류의 메소드가 있습니까? – froadie

+0

예. #ifdef 지시문을 사용하십시오 :'#ifdef DEBUG' 'MessageBox.Show ("이것은 디버그 버전입니다!"); ''# endif'. 새로운 지시어는'#define BETA_BUILD'로 정의 할 수 있습니다. –

+0

또한 Release 구성을 빌드 할 때'Debug' 클래스에 대한 모든 호출은 존재하지 않습니다. 왜냐하면 메소드 나 클래스 수준에서만'# ifdef '와 비슷한 효과를주는'ConditionalAttribute'가 적용 되었기 때문입니다. 자신의 메서드와 클래스에 특성을 적용 할 수 있습니다. –

2

조건부 이클립스에서 중단 점 설정 (모든 비주얼 스튜디오 답변에 대한 감사합니다!) :

은 중단 점을 설정합니다. 마우스 오른쪽 버튼을 클릭하고 "Breakpoint Properties ..."를 선택하십시오. "조건 사용"을 선택하고 텍스트 영역에 조건 코드를 입력하십시오.

3

IDE에서 조건부 중단 점을 지원하지 않는 경우 if 문을 추가하고 그 내부에서 중단하십시오.

if (variable == 3) { 
    // Stub code to attach breakpoint. 
    1 = 1; 
} 
관련 문제