ARM&Linux环境搭建
+ -

内核打印

2026-06-28 5 0
// 等价关系
pr_info("message");    // 等价于 printk(KERN_INFO "message");
pr_err("message");     // 等价于 printk(KERN_ERR "message");
pr_warn("message");    // 等价于 printk(KERN_WARNING "message");
pr_debug("message");   // 等价于 printk(KERN_DEBUG "message");
宏/变量 说明 示例输出
__func__ 当前函数名 xhci_pci_probe
__LINE__ 当前行号 42
__FILE__ 当前文件名 xhci-pci.c
dev->vendor PCI Vendor ID 0x8086 (Intel)
dev->device PCI Device ID 0x1e31
dev->irq 中断号 16
pci_name(dev) PCI 设备名称 0000:00:14.0
dev->dev 设备结构体 -
dev->driver_data 驱动私有数据 -
// 最常用的几个
pr_emerg("紧急消息\n");     // 最高优先级
pr_alert("警告消息\n");
pr_crit("严重消息\n");
pr_err("错误消息\n");       // 显示错误
pr_warn("警告消息\n");      // 显示警告
pr_notice("通知消息\n");
pr_info("信息消息\n");      // 普通信息 ← 你用的这个
pr_debug("调试消息\n");     // 调试信息(需要开启 DEBUG)

// 还有带函数名和行号的版本
pr_info("%s: 这是一条信息\n", __func__);
pr_info("%s:%d: 带行号的日志\n", __func__, __LINE__);
 // 1. 打印 PCI 设备信息
    pr_info("=== USBXBH: PCI device: vendor=0x%04x, device=0x%04x\n", 
            dev->vendor, dev->device);

    // 2. 打印 PCI 设备编号
    pr_info("=== USBXBH: PCI slot: %s\n", pci_name(dev));

    // 3. 打印设备 ID 匹配信息
    pr_info("=== USBXBH: matched ID: vendor=0x%04x, device=0x%04x\n",
            id->vendor, id->device);

    // 4. 打印中断号
    pr_info("=== USBXBH: IRQ: %d\n", dev->irq);

    // 5. 打印设备资源信息
    pr_info("=== USBXBH: resource flags: 0x%08lx\n", 
            pci_resource_flags(dev, 0));

    // 6. 打印函数名和行号(调试利器)
    pr_info("=== USBXBH: %s() called, line %d\n", __func__, __LINE__);

0 篇笔记 写笔记

关注公众号
取消
感谢您的支持,我会继续努力的!
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

您的支持,是我们前进的动力!