valgrind 사용법과 메모리 누수 잡기 — 실습 가이드
valgrind 사용법과 메모리 누수 잡기 — 실습 가이드 C 프로그램을 작성할 때 가장 흔한 실수 중 하나는 메모리 누수(memory leak)입니다. 이 문제를 자동으로 찾아주는 강력한 도구가 바로 valgrind입니다. 이번 글에서는 valgrind 사용법과 메모리 누수 예제 분석을 실습 중심으로 다룹니다. 🔧 valgrind 설치 U...
valgrind 사용법과 메모리 누수 잡기 — 실습 가이드 C 프로그램을 작성할 때 가장 흔한 실수 중 하나는 메모리 누수(memory leak)입니다. 이 문제를 자동으로 찾아주는 강력한 도구가 바로 valgrind입니다. 이번 글에서는 valgrind 사용법과 메모리 누수 예제 분석을 실습 중심으로 다룹니다. 🔧 valgrind 설치 U...
내가 자주 쓰는 gdb 명령어 모음 + 단축키 정리 gdb는 강력한 디버깅 도구지만, 명령어가 많아 처음엔 어렵게 느껴질 수 있습니다. 이 글에서는 제가 실무와 학습 중에 자주 사용하는 gdb 명령어와 단축키를 정리해 봤습니다. 필요할 때 빠르게 찾아보고 바로 쓸 수 있도록 구성했어요! 🛠️ 기본 디버깅 명령어 명령...
gdb로 C 메모리 구조 분석하기 — 실습 중심 튜토리얼 C 언어를 사용하다 보면 어느 순간 마주하게 되는 Segmentation Fault, 버퍼 오버플로우, 메모리 누수. 이럴 때 진짜 무기를 꺼내야죠 — 바로 gdb입니다. 이 글에서는 gdb로 Stack / Heap / 전역 변수 등을 직접 추적하며 시각적으로 메모리를 분석하는 방법을 단계별...
C에서 메모리 구조(stack/heap/static)를 시각적으로 이해하기 C 프로그램은 실행될 때 운영체제에 의해 여러 영역으로 나뉜 메모리를 사용합니다. 이 메모리 구조를 잘 이해해야 포인터, 메모리 할당/해제, 버그 원인 파악에 능숙해질 수 있습니다. 📦 C 메모리 구조 요약 위 구조는 프로세스 메모리 공간의 대표적인 구성입니다....
signal 핸들링과 trap — C에서 프로세스를 안전하게 제어하기 리눅스에서 실행 중인 프로세스는 다양한 “신호(Signal)”를 받을 수 있습니다. 사용자가 Ctrl+C를 눌렀을 때, 또는 잘못된 메모리에 접근했을 때 발생하는 이 신호들을 적절히 핸들링(handle) 하면, 프로그램이 갑작스레 종료되는 상황을 막고, 로그 저장, 자원 해제 같은...
shm_open을 동일한 이름으로 두 번 호출하면 같은 메모리인가요? POSIX 공유 메모리(shm_open)를 처음 사용하는 많은 개발자들이 갖는 궁금증 중 하나는, “동일한 이름으로 shm_open()을 여러 번 호출하면 각각 다른 메모리를 사용하는가?” 입니다. 또한, mmap()을 통해 매핑할 경우 가상 주소도 동일한지에 대해 혼동되는 경우가...
shm_open, mmap, close의 관계 정리 POSIX 공유 메모리에서 자주 헷갈리는 부분을 C 코드 예제와 함께 이해하기 공유 메모리(shm_open, mmap)를 처음 사용할 때 가장 많이 나오는 질문 중 하나: “shm_open으로 파일 디스크립터를 열고 mmap으로 매핑했는데, close를 해도 괜찮을까?” 이 글에서...