SysRq 사용법
**SysRq(System Request)**는 리눅스 커널에 내장된 긴급 제어 백도어이다. 커널이 응답하지 않거나 시스템이 매우 불안정할 때도, SysRq 키 조합을 통해 시스템을 진단하거나 복구할 수 있도록 도와주는 기능을 한다. 이 글에서는 SysRq의…
리눅스 시스템 디버깅
**SysRq(System Request)**는 리눅스 커널에 내장된 긴급 제어 백도어이다. 커널이 응답하지 않거나 시스템이 매우 불안정할 때도, SysRq 키 조합을 통해 시스템을 진단하거나 복구할 수 있도록 도와주는 기능을 한다. 이 글에서는 SysRq의…
임베디드 리눅스 디바이스를 개발할 때, 시리얼 콘솔을 통해 커널 디버깅 또는 긴급 명령을 보내는 경우가 있다. 그중 하나가 Magic SysRq 키 조합을 시리얼 포트를 통해 보내는 기능이다. Magic SysRq는 리눅스…
backtrace는 프로그램의 실행 중 호출된 함수들의 스택을 추적하여 오류나 크래시 발생 시 해당 문제가 발생한 위치와 그 경로를 파악하는 데 유용한 도구이다 .주로 디버깅 시 사용되며, 특히 프로그램이 비정상 종료되었을…
커널 개발에서 메모리 누수는 심각한 문제이다. 메모리 누수는 시스템의 성능을 저하시키고, 장기적으로는 시스템이 불안정해지는 원인이 될 수 있기 때문이다. 이를 해결하기 위해 Linux 커널은 Kernel Memory Leak Detector인 kmemleak 툴을…
커널 개발에서 메모리 버그는 예기치 않은 동작을 일으키고, 보안 취약점으로 이어질 수 있다. 이를 해결하기 위해 Linux 커널에서는 Kernel Address Sanitizer(KASAN)라는 강력한 도구를 제공한다. 이 기능을 커널에서 활성화 하면 메모리…
LeakSanitizer(LSan)은 AddressSanitizer(ASan)에 통합된 메모리 누수를 검출하는 도구이다. 주로 C/C++ 프로그램의 메모리 누수를 탐지하는 데에 사용된다. 이 도구는 GCC와 Clang 컴파일러에서 지원되며, 메모리 할당 및 해제 시점에서 메모리 누수를 감지하여 개발자가…
AddressSanitizer(ASan)는 C/C++ 용 메모리 버그를 감지하는 컴파일러 기반 도구이다. AddressSanitizer는 프로그램을 실행하는 동안 메모리 오류를 식별하여 버그를 조기에 발견하고 수정할 수 있도록 도와준다. 이 글에서는 AddressSanitizer 사용법에 대해 알아본다. ASan…
coredump는 프로그램이 비정상적으로 종료될 때 메모리 덤프를 생성하는 것을 말한다. 이를 통한다면 프로그램에 어떤 문제가 있었는지 디버깅 하는데 도움이 된다. 이 글에서는 Ubuntu 환경에서 coredump를 생성하기 위한 설정방법에 대해 알아본다.…
Efence(Electric Fence)는 메모리 관리와 디버깅을 위한 유용한 도구 중 하나로, 동적 메모리 할당과 관련된 버그를 찾고 디버깅하는 데 도움이 되며, 특히 메모리 오버런(Memory Overrun) 및 메모리 누수(Memory Leak)와 같은 문제를…
GDB(GNU Debugger)는 프로그램을 디버깅하고 분석하는데 사용되는 강력한 도구이다. 이 글에서는 GDB의 기본적인 사용법에 대해 알아본다. GDB 설치 GDB를 사용하기 위해선 먼저 설치해야 합니다. 다음은 Ubuntu 기반 시스템에서 GDB를 설치하는 명령어이다.…