CXL 디바이스 트러블슈팅 — RAS 이벤트·Poison List·Media Error 추적
CXL 디바이스의 RAS(Reliability·Availability·Serviceability) 이벤트와 poison list·media error를 추적하는 진단 흐름.
34개의 포스트 · 1/2 페이지
CXL 디바이스의 RAS(Reliability·Availability·Serviceability) 이벤트와 poison list·media error를 추적하는 진단 흐름.
CXL 링크가 안 올라올 때 LTSSM 상태 분석, Protocol Analyzer 캡처, lspci·cxl-cli·dmesg 진단 흐름.
세그폴트 트레이스백, 메모리 할당 추적, 객체 그래프 시각화.
py-spy로 콜스택 dump, 샘플링 프로파일링, flamegraph, 외부 attach.
코루틴 콜스택 추적, asyncio debug=True, slow callback, race condition.
debugpy로 IDE 디버깅, 원격 프로세스 attach, justMyCode, 멀티프로세스.
표준 라이브러리 pdb. breakpoint(), 핵심 명령, ipdb, postmortem.
Sanitizer 빌드를 프로젝트에 자연스럽게 통합 — CMake 옵션, GitHub Actions, GitLab CI 실전 예시.
LeakSanitizer로 메모리 누수 추적 — 보고서 해석, suppression, 일회성·반복 분석 패턴.
황금 조합 -fsanitize=address,undefined를 실제로 켜고 운영하는 자세한 방법 — 옵션, 환경 변수, suppression, 흔한 오탐.
C/C++ 런타임 검사 도구 Sanitizer 계열의 역할, 종류별 선택, 실무 도입 순서.
Valgrind suppression 문법, 외부 라이브러리 우회, Sanitizer와의 분담, CI 통합 실전.
Valgrind의 두 동시성 분석 도구 비교 — Helgrind의 락 추적과 DRD의 vector clock, 언제 무엇을.
Memcheck의 네 가지 누수 분류 — definitely/indirectly/possibly/still reachable — 정확한 의미와 우선순위.
Memcheck의 모든 핵심 옵션 — leak-check, track-origins, error-limit, 그리고 비용 vs 정확도 트레이드오프.
Sanitizer 시대에도 Valgrind가 살아남은 이유, 세 핵심 도구의 역할, 도입 자리.
user-space와 kernel-space 디버깅의 차이. /proc, kallsyms, kernel debug info.
디버거에서 매일 쓰는 핵심 명령 10가지 — 정확한 의미와 자주 쓰는 변형.
Device not visible·link training fail·downgrade·CE storm·hang·ACS group·hot-plug·성능 미달·lane reversal·power budget.
부트 실패 패턴을 카탈로그로 정리합니다. 시리얼 garbage, hang, panic, late hang의 진단과 대응을 살펴봅니다.
보드 켜는 순간부터 login prompt까지의 단계별 체크포인트를 정리합니다. 어디서 멈추는지를 미리 알아 둡니다.
부트로더 디버깅 — CONFIG_DEBUG_UART, JTAG, 시리얼 콘솔, panic dump 읽기.
Linux coredump·gdb 분석부터 MCU 환경의 mini-dump(Memfault)·last-gasp logging·field debug 패턴까지.
임베디드 환경에서 overhead를 최소화한 로깅. 레벨 분리·circular buffer·SWO/RTT·deferred 처리 패턴.