Skip to the content.

drgn

相关资料:

环境准备

Fedora 环境

Fedora 44 直接安装系统包即可:

sudo dnf install drgn
drgn --version

准备 debuginfo

mkdir -p  /lib/modules/$(uname -r)
scp martins3@10.0.2.2:/home/martins3/data/kernel/linux-build/vmlinux  /lib/modules/$(uname -r)

很容易走通,这两个东西真的震撼我了,的确比使用 crash 好太多了

task = find_task(115)
cmdline(task)

用这个来分析内核真的不错的

cd /home/martins3/data/vn
sudo drgn --debug-directory ~/data/kernel/linux-full/vmlinux drgn-kvm-analysis.py

sudo drgn --debug-directory ~/data/kernel/linux-full/vmlinux drgn-kvm-vm-parser.py

使用的经典案例

  1. 使用 drgn 来分析 workqueue : ~/docs/kernel/irq/softirq/workqueue.md
  2. ./scripts/ 下
  3. 查看全系统 inode-backed page cache 按文件占用:
cd /home/martins3/data/vn/docs/kernel/tutorial/drgn/scripts
sudo drgn -c /proc/kcore ./page_cache_by_file.py --top 50
  1. 分析 QEMU/VFIO 使用 iommufd 时的核心对象关系:
cd /home/martins3/data/vn/docs/kernel/tutorial/drgn/scripts
sudo drgn -k ./iommufd_relationship.py --pid $(cat ~/data/hack/vm/yyds-nv/s/pid)

TODO

https://drgn.readthedocs.io/en/latest/tutorials/blk_rq_qos_crash.html oracle 的扩展 : https://github.com/oracle-samples/drgn-tools

本站所有文章转发 CSDN 将按侵权追究法律责任,其它情况随意。