본문 바로가기

전체 글70

[WSL] WSL2에서 Systemd 사용하기 1. 개요 WSL2 로 Ubuntu 22.04/20.04 를 사용하고 있는데, 기본적으로 WSL을 사용하면 init을 사용합니다. 최신 Linux 시스템의 경우에는 init이 아닌 systemd를 사용합니다. init 인 경우 service 명령어를 사용하고, systemd의 경우 systemctl 명령어를 사용합니다. init이 아닌 systemd를 사용하기 위해선 WSL2를 사용해야 하며, 몇 가지 확인해야 할 사항이 있습니다. 2. wsl.conf 파일 확인 Linux 배포판 실행 후 "/etc/wsl.conf" 파일을 확인합니다. # cat /etc/wsl.conf [boot] systemd=true​ Ubuntu 22.04/20.04 의 경우에 해당 파일의"systemd=true"로 되어 있지만.. 2024. 2. 29.
[WSL] VSCode에서 WSL2 사용한 linux 개발환경 구축 1. 개요 window에서 WSL2를 설치하여 vscode에서 linux 개발 환경을 구축한다. vscode는 이미 설치되어 있다고 가정합니다. 2. 환경 구성 WSL, WSL2, linux를 설치합니다. 2.1. WSL 설치 "제어판"→"프로그램"→"프로그램 및 기능"→"windows 기능 켜기/끄기"에서 다음을 체크합니다. Linux용 windows 하위 시스템 가상 머신 플랫폼 체크하고 확인을 클릭 시 설치 후 재부팅을 진행합니다. 2.2. Linux 설치 "Microsoft Store"에서 linux 검색 후 원하는 배포판을 설치합니다. 저는 Unbuntu 22.04.2 LTS를 설치하였습니다. "Microsoft Store"에서 linux 배포판 설치 후 실행하면 계정 정보를 입력하고 linux.. 2024. 2. 28.
[Git] 오류 fatel remote error CAPTCHA required fatal: remote error: CAPTCHA required git 패스워드 변경한 뒤 commit, pull, push, fetch와 같은 명령을 수행하는 경우 다음과 같은 오류가 발생합니다. git error fatal: remote error: CAPTCHA required Your Bitbucket account has been locked. To unlock it and log in again you must solve a CAPTCHA. This is typically caused by too many attempts to login with an incorrect password. The account lock prevents your SCM client from accessing B.. 2024. 1. 3.
[Linux] gdb 멀티 프로세스 환경에서 사용하기 1. 개요 멀티 프로세스 즉 fork() 이후 자식 프로세스에서 디버깅을 하기 위해서는 옵션을 설정해야 합니다. default는 부모 프로세스로 fork() 이후 부모 프로세스만 디버깅됩니다. 2. 멀티 프로세스 디버깅 제어 옵션 멀티 프로세스 gdb 디버깅을 위해 자식 또는 부모 프로세스를 제어하기 위한 옵션을 설명합니다. 2.1. follow-fork-mode fork() 이후 자식 또는 부모 프로세스의 동작을 제어하는 옵션으로 default는 parant입니다. child로 변경하면 fork() 이후 자식 프로세스로 전환되어 자식 프로세스를 디버깅합니다. 명령어 결과 set follow-fork-mode parant set follow-fork-mode child show follow-fork-mo.. 2023. 12. 19.
[Linux] gdb 명령어 정리 및 예제 실습 1. 개요 linux c 개발에서 디버깅을 위한 gdb 명령어 정리 및 실습을 진행합니다. 2. gdb 사용 조건 gdb를 사용하기 위해선 컴파일 옵션에 "-g" 옵션을 사용해야 합니다. 또한 최적화 옵션을 사용하지 않는 것이 디버깅 시 좋습니다. 3. 예제 소스 gdb 명령어 테스트를 위한 소스 예제입니다. 예제는 다음과 그림과 같이 구성하였습니다. 소스 파일 main.c #include #include #include #include int main(int argc, char **argv) { int i = 0; int nData1 = 0; int nData2 = 0; int nResult = 0; int narResult[5] = {0, }; double dResult = 0; if(1 < argc.. 2023. 12. 8.
[GTEST] "--gtest_filter" 옵션으로 설정한 테스트 케이스가 존재하지 않는 경우 오류 처리 방법 1. 개요 GTEST의 경우 filter 옵션으로 특정 테스트 케이스를 실행시킬 수 있습니다. 하지만 옵션으로 준 테스트 케이스가 존재하지 않는 경우 따로 오류 처리를 하지 않아 개별 테스트를 여러 번 수행하는 경우 테스트 케이스 누락 여부를 확인하기 어려워 내용을 정리합니다. 비교 테스트가 있는 경우 테스트가 없는 경우 2. GTEST에서 제공하는 Class를 사용하여 처리하는 방법 GTEST에서는 테스트 프로그램에 대한 정보를 가지고 있는 Class를 제공합니다. 이를 활용하여 옵션으로 주어진 테스트 케이스가 존재하는지 체크하는 방법을 확인합니다. 사용 Class UnitTest : 테스트 프로그램 전체 상태를 반영합니다. TestCase : 테스트 케이스에 대한 정보가 있으며, 테스트 케이스는 테스.. 2023. 11. 30.