crash-utility - wakelock 디버깅

Guillermo Austin Kim|2018년 1월 6일
Posts

crash-utility - wakelock 디버깅

Guillermo Austin Kim|2018년 1월 6일

android 시스템에서 wakelock 소스를 등록할 때는 wakelocks_tree란 rbtree 접근을 해요.그럼 이 정보를 바탕으로 어떤 모듈이 wakelock을 잡고 있는지 점검해볼까요? 우선 wakelocks_tree.rb_node 멤버가 갖고 있는 rbnode를 확인해요.crash64> p wakelocks_treewakelocks_tree = $2 = { rb_node = 0xffffffc0e397b108} wakelocks_tree에 등록한 인스턴스를 아래 wakelock_node 변수로 리다이렉트합니다.tree -t rbtree -o wakelock.node -N 0xffffffc0e397b108 > wakelock_node wakelock_node 값을 확인해볼까요? 아

Related Posts

3 posts

[Crash-Utility] 램덤프 로딩 시 파라미터(CONFIG_PROC_KCORE)

Guillermo Austin Kim|2022년 1월 5일

크래시 유틸리티를 실행해 램덤프를 로딩하려면 적절한 아규먼트를 지정해야 합니다. 예를 들면 다음과 같습니다. ./crash64 ramdump.bin@0x800000000 -p 4096 -m kimage_voffset=0xFFFFFFBF58000000 -m page_offset=0xFFFFFF8000000000 -m vabits_actual=39 -m phys_base=0x40000000 --no_panic --smp vmlinux kimage_voffset, page_offset, phys_base과 같은 파라미터를 제대로 설정해야 크래시 유틸리티가 실행됩니다. 그런데 kimage_voffset, page_offset 옵션을 어떻게 적용해면 될지 모를 때가 있습니다. 이럴 때는 이번 포스트에서 소개한

[리눅스커널] 크래시 유틸리티: files -p '아이노드 주소' + files -d '덴트리 주소' 디버깅

Guillermo Austin Kim|2019년 12월 17일

크래시 유틸리티는 다양한 메모리 및 파일 시스템 디버깅 기능을 제공합니다.그 중에 유용한 기능 중 하나를 소개합니다. * files -p '아이노드 주소' 먼저 다음 명령어를 입력해 오픈된 파일에 대한 파일 디스크립터, 아이노드 그리고 덴트리를 확인 합니다. * files crash> files 1664PID: 1664 TASK: dc270000 CPU: 1 COMMAND: "Chrome-proc.anim"ROOT: / CWD: / FD FILE DENTRY INODE TYPE PATH 0 de4d8200 e1a33ab0 e0ce8dd8 CHR /dev/null 1 de4d8200 e1a33ab0 e0ce

[Crash-Utility] Radix Tree 디버깅: 'tree -t radix -N (struct radix_tree_node *) 구조체 주소'

Guillermo Austin Kim|2019년 9월 30일

이번 시간에는 크래시 유틸리티로 라덱스 트리를 디버깅하는 방법을 소개합니다. 라딕스 트리(Radix Tree)를 보기 위한 명령어 크래시 유틸리티로 라덱스 트리 노드를 보기 위한 명령어 포멧은 다음과 같습니다. tree -t radix -N (struct radix_tree_node *) 구조체 주소 예제 명령어 및 결과 ( struct radix_tree_node 구조체 주소가 0xFFFFFFFF3A806E79 인 경우) crash> tree -t radix -N 0xFFFFFFFF3A806E79ffffffff3f53c180ffffffff3f53c4c0ffffffff3f555180ffffffff3f5554c0ffffffff3f56e180ffffffff3f56e4c0ffffffff3f5