用bcc打印参数内容

Linux DTrace仍然遥遥无期,不过最近发现bcc功能也很强大,可以打印参数成员变量的内容。

https://github.com/mishuang2017/sm/blob/master/bcc/device_add.py

'modprobe -v mlx5_core'输出如下:

$ sudo ./device_add.py
TIME(s)            device             name
89873.159791000    ffff9ba9127f3000   ptp4
89873.189094000    ffff9ba7cdf4b008   ib-comp-wq
89873.189173000    ffff9ba7cdf48808   ib-comp-unb-wq
89873.389018000    ffff9ba9127f1000   ptp5
89873.531818000    ffff9ba83e040508   eth0
89873.800179000    ffff9ba843600508   eth0
89873.881128000    ffff9ba8088a0378   mlx5_0
89873.894575000    ffff9ba81e7f0028   uverbs0
89874.640101000    ffff9ba813f20378   mlx5_1
89874.698222000    ffff9ba7e3750028   uverbs1

如果不需要打印成员变量的话,只需要打印参数或者返回值用trace.py更简洁:

# trace 'r::pci_alloc_dev "%llx", retval'                                                                                                                         
PID     TID     COMM            FUNC             -
13820   13820   bash            pci_alloc_dev    ffff9bb10becb000
13820   13820   bash            pci_alloc_dev    ffff9ba918f3f000
13820   13820   bash            pci_alloc_dev    ffff9bb13d805000

# trace 'pci_alloc_dev "%llx", arg1'
PID     TID     COMM            FUNC             -
13820   13820   bash            pci_alloc_dev    ffff9ba91b3c6000
13820   13820   bash            pci_alloc_dev    ffff9ba91b3c6000
13820   13820   bash            pci_alloc_dev    ffff9ba91b3c6000

# trace pci_alloc_dev -K
11745   11745   bash            pci_alloc_dev
        pci_alloc_dev +0x1 [kernel]
        sriov_enable +0x327 [kernel]
        pci_enable_sriov +0x2b [kernel]
        mlx5_core_sriov_configure +0x103 [kernel]
        sriov_numvfs_store +0x109 [kernel]
        dev_attr_store +0x1b [kernel]
        sysfs_kf_write +0x3c [kernel]
        kernfs_fop_write +0x125 [kernel]
        __vfs_write +0x3a [kernel]
        vfs_write +0xb1 [kernel]
        ksys_write +0x55 [kernel]
        __x64_sys_write +0x1a [kernel]
        do_syscall_64 +0x5a [kernel]
        entry_SYSCALL_64_after_hwframe +0x44 [kernel]

trace.py也可以用来trace应用程序:

trace 'tc:tc_filter_modify "%d", arg1'

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值