리눅스 시스템 디버깅

SysRq를 위한 pyserial-miniterm에 send_break() 기능 추가하기

임베디드 리눅스 디바이스를 개발할 때, 시리얼 콘솔을 통해 커널 디버깅 또는 긴급 명령을 보내는 경우가 있다. 그중 하나가 Magic SysRq 키 조합을 시리얼 포트를 통해 보내는 기능이다. Magic SysRq는 리눅스…

Continue ReadingSysRq를 위한 pyserial-miniterm에 send_break() 기능 추가하기

[C언어] backtrace 방법

backtrace는 프로그램의 실행 중 호출된 함수들의 스택을 추적하여 오류나 크래시 발생 시 해당 문제가 발생한 위치와 그 경로를 파악하는 데 유용한 도구이다 .주로 디버깅 시 사용되며, 특히 프로그램이 비정상 종료되었을…

Continue Reading[C언어] backtrace 방법

Kernel Memory Leak Detector : kmemleak 사용법

커널 개발에서 메모리 누수는 심각한 문제이다. 메모리 누수는 시스템의 성능을 저하시키고, 장기적으로는 시스템이 불안정해지는 원인이 될 수 있기 때문이다. 이를 해결하기 위해 Linux 커널은 Kernel Memory Leak Detector인 kmemleak 툴을…

Continue ReadingKernel Memory Leak Detector : kmemleak 사용법

Kernel Address Sanitizer(KASAN) 사용법

커널 개발에서 메모리 버그는 예기치 않은 동작을 일으키고, 보안 취약점으로 이어질 수 있다. 이를 해결하기 위해 Linux 커널에서는 Kernel Address Sanitizer(KASAN)라는 강력한 도구를 제공한다. 이 기능을 커널에서 활성화 하면 메모리…

Continue ReadingKernel Address Sanitizer(KASAN) 사용법

LeakSanitizer 사용법

LeakSanitizer(LSan)은 AddressSanitizer(ASan)에 통합된 메모리 누수를 검출하는 도구이다. 주로 C/C++ 프로그램의 메모리 누수를 탐지하는 데에 사용된다. 이 도구는 GCC와 Clang 컴파일러에서 지원되며, 메모리 할당 및 해제 시점에서 메모리 누수를 감지하여 개발자가…

Continue ReadingLeakSanitizer 사용법

AddressSanitizer(ASan) 사용법

AddressSanitizer(ASan)는 C/C++ 용 메모리 버그를 감지하는 컴파일러 기반 도구이다. AddressSanitizer는 프로그램을 실행하는 동안 메모리 오류를 식별하여 버그를 조기에 발견하고 수정할 수 있도록 도와준다. 이 글에서는 AddressSanitizer 사용법에 대해 알아본다. ASan…

Continue ReadingAddressSanitizer(ASan) 사용법

Ubuntu coredump 설정

coredump는 프로그램이 비정상적으로 종료될 때 메모리 덤프를 생성하는 것을 말한다. 이를 통한다면 프로그램에 어떤 문제가 있었는지 디버깅 하는데 도움이 된다. 이 글에서는 Ubuntu 환경에서 coredump를 생성하기 위한 설정방법에 대해 알아본다.…

Continue ReadingUbuntu coredump 설정

GDB 사용법

GDB(GNU Debugger)는 프로그램을 디버깅하고 분석하는데 사용되는 강력한 도구이다. 이 글에서는 GDB의 기본적인 사용법에 대해 알아본다. GDB 설치 GDB를 사용하기 위해선 먼저 설치해야 합니다. 다음은 Ubuntu 기반 시스템에서 GDB를 설치하는 명령어이다.…

Continue ReadingGDB 사용법