SLUB/SLOB 분석하다가 이것저것 수정해보고있다. 버그가 나서 고쳐야하는데 start_kernel에서 local_irq_enable을 하기만 하면 인터럽트쪽 코드 때문에 디버깅이 안되는데 Oops도 제대로 안보여서 매우 곤란해졌다.
그래서 한 몇시간 삽질하다가 찾은 방법이 gdb 스크립트를 활용하는 것이다. 이런게 있었다니 .. OTL..
gdb -iex 'add-auto-load-safe-path .' vmlinux # gdb 실행
target remote:1234 # 원격 접속
continue # 터질때까지 기다림
^C # SIGINT 보냄
lx-dmesg # dmesg 보여주는 스크립트
너무 잘보인다...
p.s.
왜인지 모르겠으나 l *slob_free+0x140/0x284를 하면 잘못된 라인으로 보여준다. ./script/faddr2line으로 정확하게 찾아낼 수는 있는데 매번 치려니 좀 불편... faddr2line은 sjpark님 블로그에 매우 잘 정리되어있다.
'Kernel' 카테고리의 다른 글
[Linux Kernel] 리눅스는 얼마나 작아질 수 있을까? (1) | 2021.12.05 |
---|---|
[Paper] When Poll is Better than Interrupt (0) | 2021.11.06 |
리눅스와 오픈소스에 관한 생각 (3) | 2021.09.23 |
[LWN.net] More IOPS with BIO Caching (0) | 2021.09.19 |
[Linux Kernel] KPTI: Kernel Page-Table Isolation (0) | 2021.09.18 |
댓글