728x90

수성비전자방입니다. 최근 Sandisk Ultra Dual Drive USB Type-C를 구매했습니다.(사실 구매한 지 2달 정도 지났습니다.) 이 제품은 USB Type-A와 USB Type-C 단자가 모두 있으며, USB 3.0을 지원합니다. 오늘은 Sandisk Ultra Dual Drive USB Type-C 후기와 벤치마크 결과를 알려드리겠습니다.

 

※16GB 제품 기준입니다!

 

Sandisk Ultra Dual Drive USB Type-C 후기

개봉을 해 보겠습니다.

 

작고 아담하군요. 쓰다 보면 작다는 느낌은 없어집니다.(적응된다는 뜻)

 

이 검은 것(?)을 움직여서 단자를 꺼낼 수 있습니다.

 

USB Type-A 단자입니다.

 

파란색 보이시죠?

 

이건 USB Type-C 단자입니다. 양방향으로 꽂을 수 있죠.

 

제 노트북인 갤럭시 북 Flex2에 꽂아봤습니다. 잘 인식됩니다.

그리고 제 휴대전화인 갤럭시 S20 FE에도 잘 연결이 되는데, 작동 사진을 실수로 지워버렸습니다.

 

USB 안에 원래 들어있는 파일들입니다. 안드로이드 스마트폰에 꽂아서 쓸 때 쓰라고 있는 것 같아요.

 

Sandisk Ultra Dual Drive USB Type-C 벤치마크(CrystalDiskMark)

우선, 벤치마크 결과를 100% 신뢰하시지 말라는 말씀 드립니다. 테스트 환경에 따라 결과는 달라질 수 있습니다.

 

참고)CrystalDiskMark 개발사 누리집: https://crystalmark.info/en/software/crystaldiskmark/

 

[USB Type-A로 연결했을 때]

 

 

[USB Type-C로 연결했을 때]

 

참고로, USB 버전별 속도와 비교하면 아래와 같습니다.

[참고-USB 버전별 속도와 비교]

*USB 2.0: 480Mbps=60MB/s

*Sandisk Ultra Dual Drive USB Type-C 읽기 속도: 159~162MB/s (쓰기 속도는 ㅠㅠ)

*USB 3.0(USB 3.2 Gen 1): 5Gbps=625MB/s

*USB 3.1(USB 3.2 Gen 2): 10Gbps=1.25GB/s

(나머지는 이 글에서 다루는 제품과 관련이 없으니 생략하겠습니다.)

원래 USB 3.0 제품이라고 해서 5Gbps의 속도를 다 쓸 수 있는 건 아닙니다. 적어도 USB 2.0보다는 분명 빠르니 만족하고 쓸 수 있겠습니다.(다만, 쓰기 속도가 중요하신 분은 좀 망설여 보세요.)

 

저의 글을 읽어 주셔서 감사합니다.

다음에 만나요!

 

참고 자료

1) 쿨이맘. "USB 2.0 USB 3.0 USB 3.1 USB 3.2 버전별 규격 차이와 특징 및 속도 비교", 쿨이맘의 일상 기록. (2021. 08. 31. 방문). https://blog.naver.com/krhera/222305417810

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 2020년 하반기에 Windows 11이 출시된다는군요. 2021년 상반기 쯤에는 Win10→Win11 무료 업그레이드도 진행될 것 같습니다. 프로그래머들은 Windows 11을 미리 써보고 자신의 프로그램이 잘 작동되는지 확인해 보고 싶을 것입니다. Windows 11 Insider Preview를 미리 사용해 볼 수 있습니다. 다른 블로그에서는 보통 Win10→Win11 프리뷰 업그레이드 방법을 소개하더군요. 저는 Windows 11 Insider Preview ISO 파일을 내려받아 버추얼박스에 설치해 보겠습니다.

 

 

버추얼박스 설치하기

안녕하십니까? 수성비입니다. 드디어 저의 기말고사가 끝났습니다!! 원래 기말고사 끝나면 모바일로 사진 편집하는 거 올리려고 했는데 깜박 잊고 다른 글을 준비한 관계로 모바일로 사진 편집

toopyo.tistory.com

 

Windows Insider Program 가입 및 Windows 11 프리뷰 iso 내려받기

1. https://insider.windows.com/en-us/ 에 접속하세요.(또는 windows.com→스크롤 내림→Windows 참가자 프로그램)

2. 오른쪽 위의 Sign in을 클릭하여 Microsoft 계정으로 로그인하세요.

 

저는 계정이 2개(개인 계정, 학교 계정)라서 계정 선택 페이지가 열리네요.

(사실 저는 계정이 3개입니다. 학교 계정이 2개거든요. 그런데 학교 계정 1개가 누락된 모양이군요.)

 

3. 살짝 스크롤을 내려 Register를 클릭합니다.

 

4. IMPORTANT NOTICE를 읽어 보세요.

제가 영어를 잘 못하지만 대충 이해한 바로는

●프리뷰 프로그램은 테스트되지 않았다.(즉, 불안정하겠죠?)

●crashes, security vulnerabilities, data loss, or damage를 겪을 수 있다.(보안 문제, 데이터 손실 등을 겪을 수 있음을 유의하세요!)

●모바일 기기에 설치하면 (i)~(iv)의 문제를 겪을 수 있다.(알아서 해석해 보세요. 저는 모바일 기기에 설치하는 게 아니라서 해석 안 했습니다.)

●Full Diagnostic Data(optional까지도)를 Microsoft에 전송해야 한다.(선택적 진단 데이터를 MS에 보내야 한다는 의미입니다. 이건 이따가 설치 과정에서 설명 드리겠습니다. 참고로 Privacy Statement는 https://privacy.microsoft.com/en-us/privacystatement 에서도 읽으실 수 있습니다.)

●프로그램에 대한 의사소통을 받을 것이다. 의사소통이 싫으면 인사이더 프리뷰 프로그램을 종료해라.

*제 번역보다 번역기가 더 정확할 수 있습니다.

 

5. I accept the terms of this agreement. (Required)에 체크합니다.

6. Register now를 클릭합니다.

 

7. Flight now를 클릭합니다.

(https://insider.windows.com/en-us/에서도 Flight now로 들어가실 수 있습니다.)

 

8. download a Windows Insider Preview ISO를 클릭하세요.

 

여기서 Windows 11 프리뷰 iso 파일을 받으실 수 있습니다.

(이 페이지는 https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewiso로도 접속하실 수 있습니다.)

9. 스크롤을 내리세요.

 

10. Select edition 펼침 메뉴에서 원하시는 버전을 클릭합니다. 우리의 목표는 Windows 11 설치이므로 Windows 11 Insider Preview 중에서 선택하시고요, Dev/Beta/Release의 차이는 아래와 같습니다.

 

출처:  https://docs.microsoft.com/ko-kr/windows-insider/flighting

 

 

(10. Select edition 펼침 메뉴에서 원하시는 버전을 클릭합니다.)

11. Confirm을 클릭합니다.

12. 언어를 선택합니다. Korean도 선택하실 수 있어요.

13. Confirm을 클릭합니다.

 

14. 64-bit Download를 클릭합니다.

 

15. 내려받으시면 됩니다.

 

버추얼박스에 Windows 11 설치하기

1. 버추얼박스에서 새로 만들기(N)를 클릭합니다.

 

2. 이름은 맘대로 지정하시고, 종류를 Microsoft Windows로 해 주세요.

버전은 현재 Windows 11이 없으니 Windows 10 (64-bit)로 지정하겠습니다.

 

3. Windows 11의 최소 요구 사항에 따르면 RAM이 4GB 이상이어야 한다고 합니다. 4096MB 이상으로 할당해 주세요.

(저는 4096MB 할당했습니다.)

 

4. 지금 새 가상 하드 디스크 만들기를 선택하겠습니다.

 

5. VDI를 선택할게요.(VHD, VMDK 써도 똑같겠죠?)

 

6. 취향껏 선택하세요. 저는 고정 크기를 선호하는 편입니다.

 

7. Windows 11을 설치하려면 하드 디스크 용량이 50GB 이상이어야 합니다.

참고로 저는 Host PC C 드라이브 용량이 적어서 외장 Micro SD에 가상 하드 디스크를 만들었습니다.

 

8. 설정을 클릭합니다.

 

9. 시스템을 클릭합니다.

10. 부팅 순서에서 하드 디스크를 최우선순위로 둡니다.(이건 그냥 제 취향입니다.)

11. EFI 사용하기를 체크합니다.

 

12. 저장소를 클릭합니다.

13. (CD) 비어 있음을 클릭하고

14. (CD) 펼침 메뉴를 클릭하셔서

15. 디스크 파일 선택...을 클릭합니다.

 

16. 내려받은 Windows 11 iso 파일을 열어 줍니다.

 

17. 이제 확인을 누르시면 됩니다.

 

18. 방금 만든 가상 머신을 클릭하고 시작합니다.

 

(부팅중...)

 

19. 익숙한 화면이 나왔죠? 여기서 다음을 클릭합니다.

(키보드 종류에 대해 간략하게 적자면, VM에서 한/영 키가 작동을 안 하더라구요. 그래서 Alt 키로 한/영 변환을 할 수 있는 PC/AT 101키 호환 키보드 종류 1을 사용하기로 했습니다.)

그리고 이제 설치 과정은 Windows 10과 비슷하므로 간략하게만 설명 드리겠습니다.

 

20. 지금 설치를 클릭합니다.

 

21. 인사이더 가입할 때 제품 키를 못 받았죠? 제품 키가 없음(I)을 클릭합니다.

 

22. 설치할 운영 체제를 선택합니다. 저는 Pro를 선택했습니다. 이럴 때 아니면 언제 프로 써보겠어요?(그러나 필자는 Host에서도 Windows 10 Pro 쓴다는 건 안 비밀)

 

23. 동의하시고, 다음을 클릭하세요.

 

24. 사용자 지정을 클릭하세요.

 

25. 설치할 위치를 지정해 주세요.

저는 가상머신에 굳이 C, D를 나눌 필요는 없을 것 같아서 C 드라이브만 만들었습니다.(C드라이브 만들면 시스템, 예약 파티션이 자동으로 생김.)

26. 이제 다음을 클릭합니다.

 

그러면 설치가 진행됩니다.

 

재부팅 과정을 지나고 나면

 

27. 국가 및 지역을 선택하게 됩니다. 한국을 선택합니다.

 

28. 옛한글은 뭔지 모르겠네요. 그냥 익숙한 Microsoft 입력기를 선택하겠습니다.

 

29. 건너뛰기

 

30. PC 이름을 지정합니다. Windows 10에서는 설치 중에 PC 이름 지정하는 과정이 없어서 설치 완료 후 PC 이름을 변경했는데요, Windows 11은 처음부터 PC 이름을 지정할 수 있어서 좋군요.

31. 다음을 클릭하면 재부팅됩니다.

 

32. 저는 개인용 설정을 선택했습니다.

 

33. Microsoft 계정에 로그인합니다.

 

34. PIN을 만들어야 합니다.

 

35. PIN은 보통 숫자로만 구성하는데, 여기서는 특이하게 문자 및 기호 포함이 있네요.

 

36. 저는 아니요 눌렀습니다.

 

37. 저는 아니요 눌렀습니다.(가상 머신을 길에서 잃어버릴 일은 없죠.)

 

38. 반드시 선택 항목 포함을 선택하세요. Insider Program 규정입니다.

 

39. 수동 입력 및 타이핑 개선

 

40. 진단 데이터를 사용한 맞춤형 환경 사용

 

41. 광고 관련 - 저는 눌렀습니다. 이왕 광고 받는 것 제 취향에 맞는 광고를 받으면 좋다는 생각입니다.ㅋ

 

42. OneDrive 관련 - 저는 파일 백업 안 함을 눌렀습니다. 제가 OneDrive를 안 쓰기도 하고, Windows 11로 큰 작업(?)을 할 것도 아니라서...

 

43. Microsoft 365 관련 - 저는 아니요 눌렀습니다.

 

이제 화면에 Windows 11에 대한 안내가 뜰 것입니다. 기다리면서 보시면 됩니다. 그나저나 화면 밑에 나오는 글은 어느 나라 말일까요?

 

그런데 돌발상황 발생! 블랙스크린(구 블루스크린)이 뜨고 말았습니다. 아무래도 가상 하드를 Micro SD에 만들어서 불안정했나봐요.ㅠㅠuuTTtt(=엄청난 눈물).

이렇게 되면 알아서 재부팅이 되긴 하는데 27번 과정부터 다시해야 합니다.

 

다행히 다시 했을 때에는 블랙스크린이 뜨지 않고 잘 되었습니다.

 

환영합니다 뜨고

 

스마트폰 잠금화면 같죠? 해제 방법은 Windows 8~10과 같습니다. 마우스를 클릭하거나 스크롤하거나 화면을 위로 쓸어올리거나 키보드를 누르시면 돼요.

 

아까 만든 PIN을 입력하여 로그인합니다.

 

안녕하세요, 이 작업은 몇 분 정도 걸릴 수 있습니다, 좋은 일이 진행 중입니다, 거의 완료 되었습니다가 뜨고 나서 바탕화면을 보시게 됩니다.

 

사실 시작 화면이 화면을 거의 다 가립니다. 해상도를 바꿔야겠군요.

 

Windows 11에 게스트 확장 설치하기

게스트 확장을 선택하면 VM 창 크기에 따라 해상도가 자동으로 조정됩니다.

 

1. VM 창의 메뉴 목록에 있는 장치를 클릭합니다.

2. 게스트 확장 CD 이미지 삽입을 클릭합니다. 그러면 Windows 11 iso 파일은 자동으로 꺼내지고 게스트 확장 CD가 탑재됩니다.

 

3. 게스트 확장 CD에 있는 VBoxWindowsAddtions를 실행합니다.

 

4. 예

 

5. 다른 프로그램은 다 닫고 설치를 진행하랍니다. Next를 클릭합니다.

 

6. Next

 

7. Install을 클릭합니다.

Oracle Coporation 시스템 장치, Oracle Coporation 디스플레이 어댑터가 추가로 설치됩니다.

 

8. Reboot now를 선택하고 Finish를 클릭하여 재부팅합니다.

 

그나저나 해상도가 여전히 꽝인데요,

 

화면을 좀만 움직이시면 Windows 11이 VM 창을 꽉 채우게 됩니다.

 

이제 편하게 사용하시면 되겠습니다.

 

참고로 게스트 확장 CD 이미지는 설정→저장소에서 꺼내실 수 있습니다.

 

저의 글을 읽어 주셔서 감사합니다.

긴 글 읽느라 고생 많으셨습니다. 다음에 만나요!

 

추신)

인사이더 프로그램 가입하고 로그인도 했는데 정품 인증 안 됨. 그래서 개인 설정에 제한 있음.

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 저는 영상을 편집할 때 다빈치 리졸브를 사용합니다. 무료 프로그램인 데다가 영상과 오디오, 자막 등을 여러 개 겹칠 수 있다는 장점이 있어요. 그런데 다빈치 리졸브를 쓰다 보면 조작이 어색한 것들이 있습니다. 오늘은 클립 삭제와 렌더링을 알아보겠습니다.

 

※Davinci Resolve 17을 기준으로 설명 드리겠습니다.

 

다빈치 리졸브에서 클립 삭제

1. Edit 탭에서 작업합니다.

2. Blade Edit Mode를 이용하여 클립을 절단할 수 있습니다. 위 스크린샷에서 하늘색 동그라미 친 버튼을 눌러주세요.

3. Blade Edit Mode에서 마우스 커서로 자를 부분을 클릭하시면 클립이 절단됩니다.

절단하기 전 타임라인 막대기(?)를 자를 부분으로 이동하신 뒤 마우스로 클릭하시면 편리합니다.

 

절단된 것을 보여드리기 위해 타임라인 막대기(?)를 좀 움직이고 스크린샷을 찍었습니다. 영상이 절단된 것을 보실 수 있습니다.

 

클립을 더 절단해 주고, 이제 위 스크린샷에서 선택된 영상을 지워보겠습니다.

 

이때 주의해야 할 것은 아무 생각 없이 delete를 누르면

모든 클립에서 해당 시간 부분이 삭제되고, 뒤의 클립들이 앞당겨진다는 것입니다.

 

Backspace(←)를 누르셔야 클립이 삭제되고 그 자리가 빈 공간으로 남습니다.

 

오디오 클립은 남아있으므로 드래그 앤 드롭을 이용하여 클립을 자유롭게 이동시키실 수 있습니다. 위의 스크린샷은 예시를 들기 위해 극단적으로 편집한 것입니다.

 

렌더링

1. Deliver 탭을 클릭합니다.

2. 왼쪽 사이드바에서 원하시는 대로 설정해 주세요.

일단, 파일명과 위치를 선택해 주세요.

그리고 파일포맷을 원하는 것으로 바꿔 주세요.(참고로 기본 포맷인 QuickTime은 확장명이 MOV입니다.)

해상도를 바꾸실 분은 Resolution을 바꾸시기 바랍니다.(Custom도 가능)

3. Add to Render Queue를 클릭하세요.

 

4. Render Queue에 영상이 추가되면 Render All을 클릭합니다.

 

렌더링이 다 되면 Completed라고 뜹니다.

 

제작하신 영상 파일을 재생하실 수 있게 됩니다.

 

저의 글을 읽어 주셔서 감사합니다.

다음에 만나요!

 

댓글을 달아 주세요

728x90

수성비전자방입니다. 그동안 저는 Viusal Studio Code를 사용하면서 C 프로그래밍 하는 방법을 정리했습니다.

 

1. 설치

2. C언어 컴파일

3. C언어 디버깅(GCC, GDB 디버거)

 

이 중 2~3번 글은 사실 VScode의 기능이라기보다는 GCC, GDB의 기능이었는데요.(2번 글에서 C/C++ 확장을 다루긴 했지만...) 오늘은 최종적으로 VScode의 기능을 이용하여 C언어 빌드, 디버깅하는 방법을 알아보겠습니다.

1~3편에 이어서 진행되는 과정입니다. 위의 링크들을 클릭하셔서 글을 읽어보시기 바랍니다.

 

Visual Studio Code에서 디버깅 시작 단축키는 F5이고, 디버깅 없이 실행 단축키는 Ctrl+F5입니다.

원래 이 둘은 차이가 있어야 하는데, 여기서는 GCC를 연계해서 그런지 차이가 없네요.

둘 중 편한 것 누르세요.^^

 

위의 스크린샷은 스크린샷용으로 만들어 둔 C code입니다.ㅎㅎ

1. VScode에 C code를 띄워 놓고 F5 키를 누릅니다.

 

2. 위에 환경 선택하는 창이 뜨는데 C++(GDB/LLDB)를 선택하세요.

 

3. gcc.exe - 활성 파일 및 디버그를 클릭하세요.

 

4. 그러면 C code가 빌드되어 터미널에서 실행될 것이고, 화면에 launch.json이 띄워질 것이며,

 

좌측 탐색기를 보시면 .vscode 폴더가 생긴 것을 보실 수 있습니다.

.vscode 폴더 안의 launch.json, task.json 파일을 수정하여 빌드 및 디버깅 옵션을 설정할 수 있습니다.

이 소스코드들을 제가 line by line으로 설명 드릴 실력은 안 되고요, 아는 범위 안에서 정리하겠습니다.

우선 task.json 파일부터 알아보겠습니다.

 

task.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    "tasks": [
        {
            "type""cppbuild",
            "label""C/C++: gcc.exe 활성 파일 빌드",
            "command""C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe"
            ],
            "options": {
                "cwd""${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind""build",
                "isDefault"true
            },
            "detail""디버거에서 생성된 작업입니다."
        }
    ],
    "version""2.0.0"
}
cs

[Line2]

"tasks": [

빌드 관련 옵션은 이 대괄호 안에 모두 작성할 것입니다.

 

[Line 5]

"label": "C/C++: gcc.exe 활성 파일 빌드",

task(빌드 옵션이라고 생각하시면 됩니다.)의 이름을 정하는 부분입니다. 현재 label은 C/C++: gcc.exe 활성 파일 빌드로 되어 있네요.

 

[Line 6]

"command": "C:\\Program Files\\mingw64\\bin\\gcc.exe",

명령어입니다. 다만, 명령어의 맨 앞 부분만 여기에 작성합니다.

그리고 gcc.exe가 있는 파일 경로가 작성되어 있어야 하는데, 이는 이미 자동으로 기입이 되어있으니 딱히 건드리지 않으셔도 됩니다.

(컴파일 할 때 gcc 명령을 했다고 해서 여기서 "gcc"라고만 입력하시면 안 됩니다. 제가 해봤는데 안 되더라고요.)

특이한 것은 경로를 나타낼 때 \를 두 개씩 겹쳐 쓴다는 것입니다.

 

[Line 7~12]

"args": [
    "-g",
    "${file}",
    "-o",
    "${fileDirname}\\${fileBasenameNoExtension}.exe"
],

args는 실행할 명령어 뒤에 붙는 argument들입니다. 즉, Line 6~12까지가 의미하는 것은 아래와 같다고 보시면 됩니다.

"C:\\Program Files\\mingw64\\bin\\gcc.exe" -g ${file} -o ${fileDirname}\\${fileBasenameNoExtension}.exe

(이게 뭐야...)

${fileDirname}과 ${fileBasenameNoExtension}에 대해서는 뒤에서 설명 드리겠습니다.

수학 라이브러리를 포함하려면 -lm 옵션을, 쓰레드 함수 라이브러리를 포함하려면 -lpthread 옵션을 포함해야 한다고 합니다. 그러려면 Line 11 뒤에 쉼표(,)를 찍고 Line 11과 Line 12 사이에 "-lm", "-lpthread"를 추가하시면 되겠습니다.

 

[Line 25]

]

 

launch.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
    // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
    // 기존 특성에 대한 설명을 보려면 가리킵니다.
    // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
    "version""0.2.0",
    "configurations": [
        {
            "name""gcc.exe - 활성 파일 빌드 및 디버그",
            "type""cppdbg",
            "request""launch",
            "program""${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry"false,
            "cwd""${fileDirname}",
            "environment": [],
            "externalConsole"false,
            "MIMode""gdb",
            "miDebuggerPath""C:\\Program Files\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description""gdb에 자동 서식 지정 사용",
                    "text""-enable-pretty-printing",
                    "ignoreFailures"true
                }
            ],
            "preLaunchTask""C/C++: gcc.exe 활성 파일 빌드"
        }
    ]
}
cs

[Line 6]

"configurations": [

디버깅 옵션은 모두 이 대괄호 안에 작성할 것입니다.

 

[Line 8]

"name": "gcc.exe - 활성 파일 빌드 및 디버그",

디버그 옵션의 이름을 정하는 부분입니다. 지금은 gcc.exe - 활성 파일 빌드 및 디버그로 되어 있네요.

 

[Line 11]

"program": "${fileDirname}\\${fileBasenameNoExtension}.exe",

디버깅 할 실행 파일을 지정합니다. 뒤에서 자세히 설명 드리겠습니다.

 

[Line 16]

"externalConsole": false,

현재 externalConsole이 false로 되어 있는데 이 경우 실행 결과가 VScode의 터미널 창에 나타납니다.

false를 true로 바꾸시면 실행 결과가 별도의 CMD 창에서 나타납니다.

 

externalConsole을 true로 할 경우 프로그램이 종료되면 바로 창이 닫힙니다.

그러므로 windows.h 헤더파일을 추가하고, system("pause"); 코드를 삽입했습니다.

그 다음 빌드 또는 디버깅을 진행하면 위와 같이 별도 CMD 창에 실행 결과가 출력됩니다.

 

[Line 26]

"preLaunchTask": "C/C++: gcc.exe 활성 파일 빌드"

디버깅 실행 전 실행할 task를 정하는 부분입니다. 현재 gcc.exe - 활성 파일 빌드 및 디버그를 진행하면 그 전에 C/C++: gcc.exe 활성 파일 빌드를 먼저 하도록 되어 있습니다. 그러므로 디버깅을 하면 자동으로 빌드도 됩니다.

 

실행파일명 변경

실행파일명을 변경하기 위해서는 task.json과 launch.json을 둘 다 수정하셔야 합니다.

 

[task.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
{
    "tasks": [
        {
            "type""cppbuild",
            "label""C/C++: gcc.exe 활성 파일 빌드",
            "command""C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\a.exe"
            ],
            "options": {
                "cwd""${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind""build",
                "isDefault"true
            },
            "detail""디버거에서 생성된 작업입니다."
        }
    ],
    "version""2.0.0"
}
cs

Line 11을 수정하시면 실행파일명을 바꾸실 수 있습니다.

${fileDirname}: 파일 경로

${fileBasenameNoExtension}: 소스파일명

파일 경로를 수정하는 건 어렵더라고요. ${fileDirname}\\는 그대로 두시고, ${fileBasenameNoExtension}을 원하는 파일명으로 바꾸시면 됩니다.

위의 소스코드에 따르면 실행파일이 a.exe가 됩니다.

 

[launch.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
{
    // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
    // 기존 특성에 대한 설명을 보려면 가리킵니다.
    // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
    "version""0.2.0",
    "configurations": [
        {
            "name""gcc.exe - 활성 파일 빌드 및 디버그",
            "type""cppdbg",
            "request""launch",
            "program""${fileDirname}\\a.exe",
            "args": [],
            "stopAtEntry"false,
            "cwd""${fileDirname}",
            "environment": [],
            "externalConsole"false,
            "MIMode""gdb",
            "miDebuggerPath""C:\\Program Files\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description""gdb에 자동 서식 지정 사용",
                    "text""-enable-pretty-printing",
                    "ignoreFailures"true
                }
            ],
            "preLaunchTask""C/C++: gcc.exe 활성 파일 빌드"
        }
    ]
}
cs

Line 11을 주목하시기 바랍니다.

여기서도 파일명을 수정해 주셔야 빌드 및 디버깅이 정상적으로 진행됩니다.

(디버깅 안 하실 거라고 수정을 안 하시면 안 됩니다. 빌드할 때 결국 디버깅이 진행됩니다.)

 

이제 F5 키를 눌러 보시면 바꾼 이름으로 실행파일이 생긴 것을 보실 수 있습니다.

(위 스크린샷은 여러분의 혼동을 막기 위해 dtest.exe를 지우고 F5를 누른 것입니다.)

 

두 개 이상의 옵션

여기까지 읽으셨으면 옵션을 두 개 이상 만드는 법도 대충 아실 것 같습니다. 이건 제가 글로 설명하기가 어렵습니다. 대신 예시 코드를 아래에 작성하겠습니다.

 

[task.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
{
    "tasks": [
        {
            "type""cppbuild",
            "label""C/C++: gcc.exe 활성 파일 빌드",
            "command""C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\${fileBasenameNoExtension}.exe",
                "-lm",
                "-lpthread"
            ],
            "options": {
                "cwd""${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind""build",
                "isDefault"true
            },
            "detail""디버거에서 생성된 작업입니다."
        },
        {
            "type""cppbuild",
            "label""빌드(GCC 컴파일. 실행파일: appdt.exe)",
            "command""C:\\Program Files\\mingw64\\bin\\gcc.exe",
            "args": [
                "-g",
                "${file}",
                "-o",
                "${fileDirname}\\appdt.exe",
                "-lm",
                "-lpthread"
            ],
            "options": {
                "cwd""${fileDirname}"
            },
            "problemMatcher": [
                "$gcc"
            ],
            "group": {
                "kind""build",
                "isDefault"true
            },
            "detail""디버거에서 생성된 작업입니다."
        }
    ],
    "version""2.0.0"
}
cs

 

[launch.json]

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
{
    // IntelliSense를 사용하여 가능한 특성에 대해 알아보세요.
    // 기존 특성에 대한 설명을 보려면 가리킵니다.
    // 자세한 내용을 보려면 https://go.microsoft.com/fwlink/?linkid=830387을(를) 방문하세요.
    "version""0.2.0",
    "configurations": [
        {
            "name""gcc.exe - 활성 파일 빌드 및 디버그",
            "type""cppdbg",
            "request""launch",
            "program""${fileDirname}\\${fileBasenameNoExtension}.exe",
            "args": [],
            "stopAtEntry"false,
            "cwd""${fileDirname}",
            "environment": [],
            "externalConsole"false,
            "MIMode""gdb",
            "miDebuggerPath""C:\\Program Files\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description""gdb에 자동 서식 지정 사용",
                    "text""-enable-pretty-printing",
                    "ignoreFailures"true
                }
            ],
            "preLaunchTask""C/C++: gcc.exe 활성 파일 빌드"
        },
        {
            "name""디버깅(GCC 컴파일. 실행파일: appdt.exe)",
            "type""cppdbg",
            "request""launch",
            "program""${fileDirname}\\appdt.exe",
            "args": [],
            "stopAtEntry"false,
            "cwd""${fileDirname}",
            "environment": [],
            "externalConsole"false,
            "MIMode""gdb",
            "miDebuggerPath""C:\\Program Files\\mingw64\\bin\\gdb.exe",
            "setupCommands": [
                {
                    "description""gdb에 자동 서식 지정 사용",
                    "text""-enable-pretty-printing",
                    "ignoreFailures"true
                }
            ],
            "preLaunchTask""빌드(GCC 컴파일. 실행파일: appdt.exe)"
        }
    ]
}
cs

이렇게 하고 F5를 누르시면 여러 가지 옵션 중 맨 위의 것으로 실행될 것입니다. 그러면 어떻게 옵션을 선택할 수 있을까요?

 

실행 및 디버그 탭에서 디버깅 옵션을 선택하실 수 있습니다.

 

그러나 때로는 옵션 선택 때문에 탭을 옮기는 것이 귀찮습니다. 왼쪽 아래의 디버깅 버튼(?)을 클릭하시면 디버깅 옵션을 선택하실 수 있습니다.

 

선택한 옵션대로 빌드 및 디버깅이 이루어지면 성공!

 

디버깅 기능 사용하기

1. Line 번호 왼쪽을 클릭하면 Breakpoint(정지점)을 적절히 설정할 수 있습니다. Breakpoint가 설정되면 빨간 점이 생깁니다.

2. F5 키를 눌러 디버깅을 시작합니다.(Ctrl+F5를 눌러도 되긴 함.)

 

위와 같이 디버깅이 진행됩니다.

화면 상단을 보시면 디버깅에 쓸 수 있는 기능들이 있는데요,

 

각각 이런 기능입니다.

 

Quick Info Box

변수명에 마우스 커서를 가져다 대면 Quick Info Box가 나옵니다.

Breakpoint (직전)까지 실행했을 때의 변수 값을 확인하실 수 있습니다. Logic Error(논리 오류)를 잡는 데에 도움이 될 것입니다.

 

[F5]계속(Continue)

다음 Breakpoint를 만날 때까지 실행합니다.

(위 스크린샷을 예시로 설명하면 Line 10~Line14 실행 후 Line 15을 현재 행으로 지정.)

 

[F10]단위 실행(Step Over)

현재 행 수행 후, 다음 행을 현재 행으로 지정합니다. 함수 호출 시 함수 수행 다음 행을 현재 행으로 지정합니다.(함수 안으로 들어가지 않음.)

 

[F11]단계 정보(Step Into)

현재 행 수행 후, 다음 행을 현재 행으로 지정합니다. 함수 호출 시 함수 안으로 들어갑니다.

 

[Shift+F11]단계 출력(Step Out)

현재 들어가 있는 함수의 나머지 statement들을 모두 수행한 뒤 프로그램을 종료합니다.(main 함수로 돌아가지 않음.)

 

[Ctrl+Shift+F5]다시 시작

현재 진행중인 디버깅을 중지하고 다시 시작합니다.(시스템 재부팅 아님)

 

[Shift+F5]중지

현재 진행중인 디버깅을 중지합니다.

 

디버깅 중 변수 값을 임시로 수정하는 방법

실행 및 디버그 탭의 위쪽을 보시면 지역 변수들이 있는 것을 보실 수 있습니다. 여기서 변수 값을 더블클릭하시면

 

변수 값을 수정하실 수 있습니다. 이제 수정된 변수 값이 적용된 채로 프로그램이 작동됩니다.

 

조사식

실행 및 디버그 탭의 변수 목록 아래쪽을 보시면 조사식이 있습니다.

+를 누르시면 조사식을 추가하실 수 있습니다.

 

이와 같이 원하는(궁금한) 식을 쓰시면 됩니다. 저는 a+c를 써 보았습니다.

 

위 스크린샷은

①실행 및 디버그 탭에서 a 값을 임시로 5로 수정

②Line 5에서 c=0

이 상황에서 조사식 a+c가 5라고 나온 상황입니다.

 

저의 글을 읽어 주셔서 감사합니다.

제 지식의 한계와 스크롤의 압박으로 인해 여기까지만 다루는 점 양해 부탁드립니다.

다음에 만나요!

 

참고 자료

1) 슈라 Shuuura. 2020. "[우분투 리눅스] gcc컴파일 및 디버깅", 슈라의 인생 Log. :). (2021. 08. 06. 방문). https://blog.naver.com/sera3579/222109588968

2) Microsoft. 2021. "Debugging", Visual Studio Code User Guide. (2021. 08. 06. 방문). https://code.visualstudio.com/docs/editor/debugging#_launch-configurations

3) 이로이로. 2020. "[VS code] Node.js 프로젝트에서 launch.json가 없을 경우 설정 방법", 이로이로의 저장소. (2021. 08. 06. 방문). https://oysu.tistory.com/65

4) 민선생. 2019. "6화 - VSCode에서 C, C++ 개발환경 세팅 3 (Visual Studio Code)", 민선생 코딩 이야기. (2021. 08. 06. 방문). https://blog.naver.com/mincoding/221733289320

 

댓글을 달아 주세요