본문 바로가기

IT/HOW-TO GUIDE

(3)
[VSCode][C++] 디버깅(디버그 콘솔) 입출력 안 됨 VSCode에서 C++ 소스 파일을 디버깅할 때 입력(cin, scanf 등)이 있어서 디버그 콘솔에 입력을 했음에도 불구하고 입력한 내용이 인식이 되지 않아 다음 단계로 넘어가지 않는 경우가 있다. 이 경우 출력되어야 할 메시지(cout, printf 등) 또한 디버그 콘솔에 출력이 되지 않는다. (예시) VSCode의 디버그 콘솔이 C++ 프로그램의 입출력을 지원하지 않기 때문이다. VSCode 내부 콘솔이 아닌 외부 콘솔을 사용하면 된다. 디버깅 관련 정보를 담고 있는 launch.json 파일의 "configurations" 하위의 "externalConsole"의 값을 'true'로 바꿔준다. { ... "configurations": [ { ... "externalConsole": true, ..
[VSCode][MSBuild] 오브젝트 파일(.obj) 생성 위치 변경 빌드 시 중간 결과물로 생성되는 오브젝트 파일(.obj)의 위치가 마음에 들지 않는 경우가 있다. VSCode에서 MSBuild로 빌드할 경우 실행 파일(.exe) 외에도 .ilk(증분 링크 정보), .pdb(프로그램 데이터베이스) 등 여러 파일이 부산물처럼 발생하게 된다. 이러한 파일들은 모두 기본적으로 소스 파일이 위치한 폴더에 생성된다. 그런데 유독 .obj(오브젝트) 파일만 한 단계 상위 폴더에 생성된다. (디렉토리 구조에 따라 달라질 수 있다.) 오브젝트 파일은 보통 빌드 이후에는 필요하지 않기 때문에 따로 분리해주는 것이라고 한다. 하지만 마찬가지로 특수한 경우가 아니라면 빌드 이후 더는 필요하지 않은 다른 여러 파일(.ilk, .pdb 등)은 정작 소스 파일과 같은 폴더에 생성되는 것을 보면..
[VSCode][MSBuild] 빌드 작업 시 출력 메시지(한글 영역) 깨짐 현상 문제 VSCode에서 MSBuild를 통해 빌드 등 작업(task)을 실행하면 그 결과가 터미널(콘솔)에 출력된다. 이때 출력되는 내용 중 다음과 같이 알 수 없는 문자가 포함되는 경우가 있다. 이전에 비슷한 실행 결과를 본 적이 있는 사람이라면, 해당 영역은 에러 메시지가 표시되는 영역이라고 추측할 수 있다. 그리고 만약 사용자 환경의 언어가 한국어라면 이 메시지는 한글로 출력될 것이다. 원인 이는 작업(task) 환경의 인코딩 형식이 한글을 지원하지 않기 때문에 발생하는 문제이다. 해결 작업 실행 시 수행되는 명령에 실행 환경의 인코딩 형식을 변경하는 명령을 추가함으로써 해결할 수 있다. "tasks": [ { "command": "%BUILD%", ... "options": { "env": { "B..