본문으로 건너뛰기

🛠️ Tools

개발 도구 — Vim, 디버거, 프로파일러, 빌드

Postmortem Debugging

Memory Diagnostics

Kernel Debugging

kernel

Embedded Debugging

embedded

1

GDB Remote Serial Protocol 분석 — 디버거-타겟 통신 메커니즘

GDB가 원격 스텁과 주고받는 ASCII 패킷의 모든 것. 패킷 형식, qSupported 협상, vCont, 멀티 패킷, RLE.

2

JTAG·SWD·CoreSight 분석 — ARM 디버그 인터페이스 비교

TAP 상태 머신, SWD 패킷, ARM CoreSight (DAP/FPB/DWT/ITM/ETM) 회로 구조.

3

OpenOCD 심화 분석 — Configuration·Adapter·Target 통합

TCL 인터프리터, target/interface 설정, flash driver, custom 명령, multi-core.

4

J-Link 도구 체인 분석 — JLinkExe·RTT·GDB Server 활용

JLinkGDBServer, JLinkExe, J-Run, J-Trace, Unlimited Flash BP, RTT, Ozone.

5

ELF와 MAP 파일 분석 — 베어메탈 메모리 레이아웃 추적

ELF의 LMA/VMA, 링커 스크립트, MAP 파일로 메모리 진단, startup 코드의 정체.

6

임베디드 Trace 비교 — RTT·ITM·SWO·ETM·Semihosting 선택

printf 없이 펌웨어 로그·trace 빼내기. 다섯 가지 방법 비교 + 코드 예제.

7

RTOS-aware 디버깅과 트러블슈팅 — Task·Queue·Stack 분석

FreeRTOS/Zephyr task 콜스택, Hardfault 분석, MPU, 신호 무결성, 보안 lock 해제.

8

CXL Link Training 디버깅 — LTSSM 상태와 Protocol Analyzer 활용

CXL 링크가 안 올라올 때 LTSSM 상태 분석, Protocol Analyzer 캡처, lspci·cxl-cli·dmesg 진단 흐름.

9

CXL 디바이스 트러블슈팅 — RAS 이벤트·Poison List·Media Error 추적

CXL 디바이스의 RAS(Reliability·Availability·Serviceability) 이벤트와 poison list·media error를 추적하는 진단 흐름.

GNU Make

CMake

Sanitizers

Valgrind

GDB Extension and IDE

GDB and LLDB

gdb-lldb

1

GDB vs LLDB 분석 — 두 디버거의 설치·차이·선택 기준

네이티브 디버거의 메커니즘, gdb·lldb 차이, 설치, 첫 세션.

2

GDB·LLDB 기본 명령 — break·step·next·print 동작 비교

디버거에서 매일 쓰는 핵심 명령 10가지 — 정확한 의미와 자주 쓰는 변형.

3

디버거로 상태 들여다보기 — 변수·메모리·레지스터·STL 추적

print 만으로 부족한 자리들 — x/memory examine, ptype, STL 컨테이너, pretty printer.

4

GDB·LLDB Backtrace와 프레임 이동 — Call Stack 분석

bt·frame·up·down — 호출 스택 분석, 프레임 안 변수 조사, 인라인 함수 처리.

5

Breakpoint와 Watchpoint 분석 — Conditional·Hardware·Catchpoint

조건부 break, watchpoint(변수 변경 추적), catchpoint, hardware vs software.

6

멀티스레드·멀티프로세스 디버깅 — Non-Stop·Scheduler-Locking·Fork

thread / process apply. scheduler-locking. follow-fork. rr 시간 역행 디버깅.

7

Core Dump 분석 기법 — gcore·coredumpctl·디버거 활용

ulimit / core_pattern. gdb -c. ELF core 포맷, NT_PRSTATUS, systemd-coredump.

8

GDB 원격 디버깅 — gdbserver·OpenOCD·J-Link 통합

다른 머신·MCU를 GDB로. RSP, gdbserver, OpenOCD, J-Link, JTAG/SWD, ARM CoreSight.

9

GDB·LLDB Python 스크립팅 — Pretty-Printer·Custom Command

GDB / LLDB Python API. pretty-printer 작성, 커스텀 명령, 자동화, MI.

10

GDB·LLDB TUI와 프런트엔드 — gdb-dashboard·gef·pwndbg·VS Code

TUI 모드, cgdb, gdb-dashboard, gef/pwndbg, VSCode, nvim-dap, DAP 프로토콜.

11

GDB·LLDB 실전 팁 — STL·최적화 코드·시간 역행 디버깅

STL pretty-printers, -O2 디버깅, .gdbinit 추천, rr time-travel. 시리즈 마무리.

12

DWARF 디버그 정보 — 디버거가 변수와 라인을 찾는 방식

DWARF 표준, DIE / abbrev / line / location, expression VM, CFI, split-DWARF.

DWARF and ELF Internals

Driver-RTL Co-simulation