디버깅
- 프로그램에 발생한 버그를 잡는 것.
- 디버그가 필수인 이유 : 버그 없는 프로그램은 거의 불가능에 가깝기 때문에,
코딩만큼 중요함.
중단점
- 알고자 하는 값의 코드들의 다음 코드에 중단점 설정.(다음 코드는 아직 호출되지 않은 상태.)
- 디버그 모드 -> 중단점에서 멈추면 설정된 위치에서 사용되는 변수값 확인 가능.(자동 혹은 지역창)
- 지역창 : 멈춘 위치의 모든 변수 표시. ( [디버그] -> [창] 에서 설정 가능.)
중단점 이후 코드 디버깅
- 중단점에 멈춘 상태에서, 한 단계식 코드 실행(F11) or 프로시저 단위 실행(F10).
- 한 단계씩 코드 실행 : 중단점 이후 함수를 호출하고 그 함수 내부로 들어가서 한 줄씩 실행함.
- 중단점 다음의 함수를 나와 코드 실행 : SHIFT + F11
- 프로시저 단위 실행 : 중단점 이후 보이는 줄 그대로의 코드 실행 F10.
커서까지 실행
- 중단점을 설정하지 않고, 프로그램 실행중 멈추려는 위치에 커서 이동. 이후 Crtl + F10.
- 중단점을 설정, 해제할 필요가 없고 커서로 간단히 디버깅 가능.
다음에 실행될 문 변경
- 디버깅 도중 중단점의 위치를 바꿀 때, 중단점을 원하는 지점까지 드래그하면 됨.
- 이미 실행된 부분의 결과가 사라지지 않고 그대로 있음.(이미 100에 100을 더해 200이 됐다면, 200의 값에 100을 다시 더해주게됨.)
포인터 배열의 내용 보기
- 포인터인 변수는 첫번째 요소의 값만 보여주므로, 조사식 창을 사용하여 각 요소의 값을 확인해야함.
- 변수[위치]로 특정 위치의 값 확인 가능.
- 변수, 알고 싶은 행의 개수로 변수의 여러 행 값 확인 가능.
- 변수+위치, 알고 싶은 행의 개수로 시작점을 변경하여 값 확인 가능.
중단점 조건
- 중단점의 변수값이 변경되거나, 변수값이 특정값이 될때만 멈춤.
- 중단점 우클릭 -> 조건 설정 창에서 조건 설정.
- 참인 경우 : 특정 조건을 설정하여, 그 조건이 참일때만 중단된다.
- 변경된 경우 : 특정 변수를 지정하면, 그 변수의 값이 변경될 때만 중단된다.
적중 횟수
- 중단점에서 특정 횟수일 때만 중단.
- 중단점 팝업에서 설정가능. 반복문에서 매우 유용함.
중단점 창
- [디버그] -> [창] -> [중단점] 에서 확인 가능.
- 많은 중단점 각각의 정보를 확인 가능하다.
중단점 비활성
- 삭제하지 않고, 중단점 위치에서 Ctrl + F9.
- 다시 한번 적용하면, 다시 활성화 된다.
중단점 내보내기/가져오기
- 나중에 다시 사용할 가능성이 높거나, 협업자와 공유할 때 사용.
- xml파일로 중단점 창에서 내보내기/가져오기가 가능하다.
레이블 설정
- 중단점 팝업 메뉴에서 레이블 편집이 가능.
- 비슷한 성질을 가진 중단점을 하나의 레이블로 지정하여 그룹별로 관리가 가능하다.
직접 실행
- 디버깅 중, 직접 코딩하지 않고 결과 테스트를 할 때 사용.
- [디버그] -> [창] -> [직접 실행]
- 직접 실행 창에 테스트하고 싶은 코드 입력.
DataTips
- 디버깅 중 메모하는 기능. (주석처럼 사용.)
- 중단점과 마찬가지로 가져오기/내보내기가 가능하다.
실행중인 프로그램 디버깅
- 프로젝트가 아닌 프로그램을 디버깅.
- 우선 프로그램의 프로젝트에서 프로세스에 연결 기능을 이용해 프로그램을 연결한다.
- 이후 일반적인 디버깅과 같이 디버깅 하면 된다.
덤프 파일 디버깅
- 덤프 파일 : 프로그램이 실행 중 종료됐을 때, 그 당시의 설정을 덤프 파일로 저장함. 확장명 .dmp.
- 덤프파일을 VS로 실행한 뒤, 네이티브 전용으로 디버깅.
- 덤프 파일을 디버깅하려면 해당 프로그램의 소스 코드와 심볼 파일(.pdb)이 필요하다.