반응형
Visual studio 에서 프로그램을 종료시키지 않고 코드 수정하며 디버깅하는 방법을 알아보자.
아래 소스 코드를 예시
#include<iostream>
using namespace std;
int subtract(int a, int b)
{
int c = a - b;
return c;
}
void main()
{
int a = 1;
int b = 2;
int c = subtract(a, b);
cout << "a - b = " << c;
}
우선 디버깅에 대해 막 배운 코린이들은 수정 -> 프로그램 재시작을 반복한다.
뭔소린지 감이 안잡힐까봐 프로그램 종료 하며 디버깅하는 안좋은 예시를 준비 했다.
- 프로그램 종료 하며 디버깅하기(안좋은 예시)
1. 뺄셈 함수를 통해 '-1' 이 나오게 하고 싶은데 '3'이 나온다.
![](https://blog.kakaocdn.net/dn/I8PBE/btsDWS35kUq/feLutfyB9OoOQVSKb9LqR0/img.png)
2. subtract() 함수가 잘 못되었으니 5번 라인에 중단점을 건 후 실행 시킨다.
![](https://blog.kakaocdn.net/dn/cVKvoD/btsDTtxqesB/aKZkRdjDfJUI3KL4MaGeX1/img.png)
3. 디버깅 하다 보니 5번 라인의 '-' 대신 '+'가 들어가 '-1' 이 아닌 '3'이 나왔다.
![](https://blog.kakaocdn.net/dn/oW3Me/btsDVo3hN9Z/ZtuB1EgQHI64ukaBrAvWk0/img.jpg)
4. '+'를 '-' 로 수정해주고 프로그램 종료 -> 다시 재시작하면 올바른 답 -1 이 나온다.
![](https://blog.kakaocdn.net/dn/cWly0N/btsDXDyz3Qh/8KzMwjDLZ8pkyKQmIeoyn0/img.png)
코드가 짧으면 위에 방법처럼 (오류 발견 -> 수정 -> 프로그램 종료 -> 재시작 -> 다시 확인) 순서로 해도 된다.
하지만 어떤 소스는 실행만 3분씩 걸리는 프로그램도 있고, 대량의 디버깅해야 할 경우 수정 할 때마다 재시작을 한다면 작업시간이 몇 배로 늘어난다. 아래 방법을 통해 이런 불상사를 방지 할 수 있다.
- 프로그램 종료 시키지 않고 디버깅하기(좋은 예시)
이번에는 프로그램 종료 시키지 않으면서 디버깅 하는 좋은 예시를 보자.
1. 마찬가지로 5번 라인에 중단점을 찍은 후 실행 시킨다.
![](https://blog.kakaocdn.net/dn/cbzJEY/btsDZi1132w/zAyfrdRKvyJHOhouS7qXKk/img.png)
2. 버그를 발견 했다. '+'를 '-' 로 바꿔준 다음 ctrl + shift + F5를 눌러준다.
![](https://blog.kakaocdn.net/dn/b95JqW/btsDTv9TCEe/76gfeo2B1IIcCkLUzmMaL0/img.jpg)
3. 프로그램이 종료 되지 않고 수정 된 내용을 적용 시킬 수 있다.
F10으로 프로시저를 다음 줄로 이동시켜 변수c를 확인하면 값이 바뀐 것을 확인 할 수 있다.
![](https://blog.kakaocdn.net/dn/bVYYpQ/btsDXBt0Ybq/Y28AtgfASj78ddxmuUUDUk/img.jpg)
4. F5 눌러서 쭉 실행 해보면 '-1' 확인 가능.
![](https://blog.kakaocdn.net/dn/HGxuF/btsDUcIYhz5/5B5k8DZa6mKMdvlKcYCqnK/img.jpg)
첫번째 예시는 프로그램 종료 후 다시 재실행 후 중단점을 걸어 확인 했다면
두번째 예시는 프로그램을 종료 시키지 않아도 수정된 소스 코드가 적용 된다.
반응형
'Visual Studio' 카테고리의 다른 글
[Visual studio] Visual Studio에서 git, GitHub 사용하기 (0) | 2024.01.30 |
---|---|
[Visual Studio] C 언어/ C++ 외부 라이브러리 추가하는 방법 정리(헤더파일, lib, dll) (0) | 2024.01.26 |
[Visual Studio] 호출 스택 보는법 (0) | 2024.01.26 |
[Visual Studio] 디버깅 F10 F11 단축키 차이점 (1) | 2024.01.26 |
[Visual Studio] 중단점 사용법 (0) | 2024.01.26 |