Visual Studio Debug 실전 튜 토리 얼 의 정지점 작업

머리말
디 버 깅 기술 은 프로그래머 의 수준 을 평가 하 는 중요 한 지표 이다.디 버 깅 기술 과 도구 의 사용 방법 을 잘 파악 하 는 것 도 매우 중요 하 다.
Visual Studio 디 버 깅 프로그램 은 프로그램 이 실 행 될 때의 행동 을 관찰 하고 문 제 를 발견 하 는 데 도움 이 됩 니 다.이 디 버 거 는 모든 Visual Studio 프로 그래 밍 언어 와 연 결 된 라 이브 러 리 에 사용 할 수 있 습 니 다.디 버 깅 프로그램 을 사용 할 때 코드 를 검사 하고 변 수 를 검사 하 며 편집 하 며 레지스터 를 보고 소스 코드 에서 만 든 명령 을 보 며 프로그램 이 사용 하 는 메모리 공간 을 볼 수 있 습 니 다.
정지점 은 Debug 과정 에서 가장 많이 사용 되 는 기능 이 라 고 할 수 있 습 니 다.
하지만 가장 익숙 하고 자주 사용 하 는 것 은 일반적인 단점 일 수 있 습 니 다.사실 정지점 에 대해 Visual Studio 는 고급 기능 이 많 고 어떤 것 은 디 버 깅 이기 도 합 니 다.
이번 튜 토리 얼 에 서 는 Visual Studio 의 정지점 에 대한 더 많은 고급 게임 방법 을 소개 합 니 다.
1.일반 정지점
내용 의 완전 성 을 확보 하기 위해 서 는 일반적인 단점 을 말 해 야 한다.
일반적인 정지점 을 설정 하 는 방법 은 간단 합 니 다.코드 줄 의 왼쪽 표시 줄 회색 영역 에서 클릭 하거나 커서 를 코드 줄 에 두 고 F9 를 누 르 는 것 입 니 다.

위의 그림 에서 보 듯 이 이때 왼쪽 칸 에 나타 난 빨간색 원점 은 단점 을 대표 한다.
F5 를 누 르 면 Debugger 가 여기 서 멈 춥 니 다.
2.조건 부 정지점
일반적인 정지점 같 지 않 고 프로그램 이 실 행 될 때마다 멈춘다.조건 단점 은 조건 이 충 족 될 때 만 디 버 거 가 여기 서 멈 춘 다 는 의미 다.
조건 정지점 을 설정 하 는 일반적인 방법 은 빨 간 점 에서 오른쪽 단 추 를 눌 러 조건 을 선택 하거나 커서 를 빨 간 점 에 두 고 기어 아이콘 이 나타 나 기 를 기다 리 고 클릭 하 는 것 이다.

조건 부 정지점 설정 창 은 다음 과 같 습 니 다.

총 세 가지 유형의 조건 단점 이 있 습 니 다.
  • 조건 식(조건 식 표현 식)
  • 명중 횟수(히트 카운트)
  • 필터(필터)
  • 조건 식
    조건 식 에 도 두 가지 유형 이 있 습 니 다.
    ture(Is ture)
    다음 그림 에서 설정 한 조건 은 testInt=4 is ture 일 때 정지점 을 명중 시 키 는 것 입 니 다.

    변경 시(변경 시)
    다음 그림 에서 설정 한 조건 은 testInt 가 변경 되 었 을 때 정지점 을 명중 시 키 는 것 입 니 다.

    적중 횟수
    명중 횟수 는 Debug 순환 문 구 를 사용 할 때 매우 유용 합 니 다.
    예 를 들 어 프로그램 오류 점 이 N 번 순환 한 후에 발생 하거나 어떤 순환 이 발생 했다 고 의심 하면 순환 문 안의 명중 횟수 를 설정 하여 매번 멈 추 는 것 이 아니 라 특정한 순환 에서 멈 추 게 할 수 있다.
    다음 그림 에서 설정 한 조건 은 한 번 씩 순환 을 끊 는 것 입 니 다.

    필터
    선택 기 는 정지점 이 명중 할 때 있 는 장치,프로 세 스,스 레 드 를 제한 하 는 데 사 용 됩 니 다.
    예 를 들 어 다 중 스 레 드 프로그램 에서 GetThreadId 를 수 동 으로 사용 할 필요 가 없습니다.선택 기 를 통 해 특정한 스 레 드 에서 만 실 행 될 때 멈 출 수 있 도록 설정 할 수 있 습 니 다.

    필터 표현 식 은 다음 과 같 습 니 다.
    MachineName = "name"
    ProcessId = value
    ProcessName = "name"
    ThreadId = value
    ThreadName = "name"
    여러 표현 식 사이 에 연산 자&(AND),|(OR),!(NOT)연결.
    3.정지점 추적
    정지점 설정 창 에서 조건 을 제외 하고 동작(Action)옵션 상 자 를 볼 수 있 습 니 다.

    조작(Action)의 의 미 는 추적 점(Tracepoint)을 설정 하 는 것 이다.
    Tracepoint 는 Trace 기능 이 있 는 임시 정지점 에 해당 하 며,출력 창 에 메 시 지 를 인쇄 합 니 다.
    다음 계속 실행(Continue Execution)을 선택 하 십시오.Tracepoint 가 명중 할 때 Debugger 는 멈 추 지 않 습 니 다.그렇지 않 으 면 여기에서 멈 출 것 입 니 다.두 가지 상황 에서 소식 은 모두 인쇄 된다.
    아래 키 워드 를 메시지 로 사용 할 수 있 습 니 다.

    4.함수 정지점
    Debug 메뉴 에서 새 정지점 을 누 르 면 두 가지 유형의 정지점 을 새로 만 들 수 있 습 니 다.함수 정지점(Function Breakpoint)과 데이터 정지점(Data Breakpoint)입 니 다.

    함수 정지점 은 함수 이름 을 통 해 정지점 을 설정 하고 프로그램 이 이 함수 에 실 행 될 때 정지점 이 끊 어 집 니 다.

    5.데이터 정지점
    위 에 이어서 데이터 정지점 을 말씀 드 리 겠 습 니 다.
    데이터 정지점 의 의 미 는 프로그램 이 어 딘 가 주소 가 지정 한 바이트 가 바 뀌 었 을 때 중단 하 는 것 이다.브레이크 모드 에서 만 설정 할 수 있 습 니 다.

    주소 표시 줄 은 구체 적 인 메모리 주 소 를 사용 할 수도 있 고 표현 식 으로 메모리 주 소 를 대표 할 수도 있 습 니 다.예 를 들 어&avar 를 사용 하여 변수 avar 내용 이 바 뀌 었 을 때 프로그램 을 중단 시 킬 수 있 습 니 다.
    6.Call Stack Window 에 정지점 설정
    모 르 시 겠 지만 Call Stack 창 에 정지점 을 설정 할 수 있 습 니 다.

    함수 의 호출 관 계 를 볼 때 이 열의 함수 에서 정지점 을 빠르게 설정 하려 면 간단 합 니 다.Call Stack 창 에서 정지점 을 설정 하려 는 함수 가 있 는 줄 을 클릭 하고 F9 를 누 르 면 됩 니 다.
    7.Disassembly Window 에 정지점 설정
    Disassembly 창 에 정지점 을 설정 할 수도 있 습 니 다.하지만 전 제 는 브레이크 모드 에서

    어 셈 블 리 창 에 정지점 을 설정 하 는 방식 은 소스 코드 에 정지점 을 설정 하 는 방식 과 같 습 니 다.코드 왼쪽 표시 줄 가장자리 에서 클릭 하면 빨간색 원점 이 나타 납 니 다.
    8.단점 관리
    앞에서 설정 한 모든 정지점 이 정지점 창(Breakpoints Windows)에 나타 납 니 다.

    여기 서 모든 정지점 을 관리 할 수 있 습 니 다.예 를 들 어 일괄 사용,사용 하지 않 기,삭제 등 입 니 다.프로그램 이 실행 되 는 과정 에서 정지점 의 명중 상 태 를 볼 수 있 습 니 다.
    프로젝트 가 매우 크 고 Debug 에 많은 정지점 을 설 치 했 을 때 유용 할 것 입 니 다.
    총결산
    이상 은 이 글 의 전체 내용 입 니 다.본 논문 의 내용 이 여러분 의 학습 이나 업무 에 어느 정도 참고 학습 가치 가 있 기 를 바 랍 니 다.궁금 한 점 이 있 으 시 면 댓 글 을 남 겨 주 셔 서 저희 에 대한 지지 에 감 사 드 립 니 다.

    좋은 웹페이지 즐겨찾기