Linux 4

gdbserver ptrace issue on Apple Silicon M1/M2

Docker's Multi-architecture support 애플 실리콘 칩을 기반으로 실행되는 macOS를 위한 'Docker Desktop For Mac'은 애플 실리콘 칩셋(이하 AArch64)에서 AMD64로 빌드된 이미지의 컨테이너 실행을 위해 Qemu 가상화를 사용한다. 'The Magic Behind the Scenes of Docker Desktop'와 4.1.3.0 Release note에서 관련 내용을 확인할 수 있다. 이 글은 이전 포스팅 'Full Remote Mode Of CLion With Docker'(이하 이전 포스팅 1번)와 'Remote Debug via GDB/gdbserver Of CLion With Docker'(이하 이전 포스팅 2번)에서 공유한 내용을 AArc..

Dev 2023.06.06

하위 버전 CentOS Linux에 배포할 때의 glibc, libstdc++ 라이브러리 버전 문제

배경 최근에 읽은 ‘구글 엔지니어는 이렇게 일한다.’에서 컴파일러 버전업에 대한 이야기가 나와서 예전에 작업했던 GCC 컴파일러 버전업에 대한 내용을 정리해본다. 몇 년 전 새로운 팀에 합류했을 때 서비스 중인 서버군들 중에서 C++ 구현된 서버군이 GCC 4.4.7을 사용하고 있었고, 컴파일러 버전이 낮아서 모던 C++의 시작인 C++ 11를 사용할 수 없었다. GCC 4.4.7은 C++ 0x까지 지원한다. C++ 11을 사용하려면 최소한 gcc 4.7 이상이 필요하다. 버전업 타깃은 CentOS 7 Base repo에 있는 GCC 4.8.5 버전으로 맞추고 진행했었다. 작업 당시 오랜 세월의 흔적으로 개발, 배포, 서비스 환경 등 각각 OS 버전이 달랐다. OS 버전이 다르다는 것은 OS가 기본적으로..

Dev 2022.08.17

Remote Debug via GDB/gdbserver Of CLion With Docker

2023-06-06 추가: AArch64 환경에서 AMD64 바이너리를 디버깅할 때 발생하는 ptrace 이슈에 대한 내용을 정리했다. 이 글은 이전 포스팅에서 이어지는 내용이다. 전체 프로젝트는 여기에서 받을 수 있다. 이번에는 리모트 디버그에 대해서 정리할 것이다. 공식 문서에도 소개가 잘 되어 있지만, 이 문서를 보고 바로 따라하기에는 좀 어렵다. 여기서 정리할 내용이다. Docker Compose 설정 GDB 설정 Remote Debug via GDB/gdbserver Use Remote GDB Server Use GDB Remote Debug GDB Server로 Target Process를 실행 Target Process를 실행 후에 GDB Server를 해당 PID로 Attach Docker..

Dev 2020.05.07

Full Remote Mode Of CLion With Docker

게으름이 이렇게 무섭다. 이걸 포스팅하겠다고 메모해 놓은 지 반년이 지났다. (이렇게 밀린 메모가 더 있다는 건 비밀이다.) 서버 개발자로 일을 하다 보면 Linux 환경만 지원하는 서버를 유지보수 해야 할 수도 있다. 아마 epoll을 사용한 서버일 것이다. 어떤 개발 환경으로 세팅이 되어 있을지는 모르겠지만, 해당 서버에 직접 들어가서 vi로 작업을 하고 make로 빌드하고 gdb로 디버깅을 해도 된다. 또는, Docker로 같은 Linux로 개발 환경을 만들고 visual studio code를 리모트로 연동해도 된다. 방법은 다양하다. 하지만, 나는 에디터나 터미널에서 vi로 작업하고 make를 실행하고 git 커맨드를 직접 사용하는 진성 개발자가 아니다. 편리한 IDE를 선호한다. vi의 손맛을..

Dev 2020.04.14
반응형