首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux内核中dev_info、dev_dbg、dev_err及动态调试

目前在kernel驱动代码中,都不再建议直接使用printk直接添加打印信息,而是使用dev_info,dev_dbg,dev_err之类的函数代替,虽然这些dev_xxx函数的本质还是使用printk...打印的,但是相比起printk: 支持打印模块信息、dev信息 支持动态调试(dynamic debug)方式 下面简述下这几个dev_xxx函数的基本使用规则,以及动态调试使用方式。...动态打印调试的基本原理 当编译选项CONFIG_DYNAMIC_DEBUG打开的时候,在编译阶段,kernel会把所有使用dev_dbg()的信息记录在一个table中,这些信息我们可以从/mnt/dbg...dev_dbg()对于分析某些内核子系统或者驱动流程也十分有意义,例如,使能net/ipv4/ping.c的调试开关,则可以观测ping的运行原理。...代码分析 从代码角度,也很容易看出dev_dbg()的设计: include/linux/device.h include/linux/dynamic_debug.h lib/dynamic_debug.c

8.5K21

《Essential Linux Dev

net_device结构体的指针被传给该处理函数作为参数,它包含了网络接口的名字,my_dev_event_handler()打印出了该信息: my_dev_event_handler: Val=1,...在整个类型中都有对它们的使用,因此在大多数子目录中,都能找到例子。其中的一个例子是include/linux/blkdev.h中定义的request_queue结构体,它存放磁盘I/O请求的链表。...wake_up_interruptible() include/linux/wait.h kernel/sched.c 唤醒一个正在等待队列中睡眠的任务,将其返回调度器的运行队列。...set_current_state() include/linux/sched.h 设置一个进程的运行状态,可以是如下状态中的一种:TASK_RUNNING、TASK_INTERRUPTIBLE...在内核中没有信号处理函数,因此,你不得不显示地检查信号的发起 call_usermodehelper() include/linux/kmod.h kernel/kmod.c 执行一个用户模式的程序

2.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux下dev目录引发的思考

    /dev目录 如果将一个设备连接到Linux系统时,通常需要一个设备驱动程序才能正常工作。你可以通过设备文件或设备节点与设备驱动程序交互,这些是看起来像普通文件的特殊文件。...以前,如果你想在系统中添加一个设备,你只需要在/dev中添加设备文件,然后可能就会忘记它。重复几次,你就会发现哪里有问题了。/dev目录会被你很久以前升级或停止使用的设备的静态设备文件弄得乱七八糟。...您可能听说过在现代系统中实际上并没有使用SCSI设备,但是我们的Linux系统将SCSI磁盘与/dev中的硬盘驱动器相对应。...PATA设备 有时在旧系统中,你可能会看到硬盘驱动器以hd前缀引用: /dev/hda -第一块硬盘 /dev/hdd2 -第4块硬盘的第二个分区 sysfs Sysfs是很久以前创建的,目的是更好地管理系统上的设备...它为我们提供了比在/dev目录中能够看到的更详细的信息。目录/sys和/dev在某些方面看起来非常相似,但它们确实有很大的不同。

    5.9K20

    Linux之dev目录介绍

    Linux之设备文件目录 01 dev文件目录介绍 Linux中的dev文件目录的全称是device设备的英文,这个目录包含了所有linux中使用的外部设备,但是不包含外部设备的驱动信息。...: ls -l /bin/usr 2> /dev/null df -h命令结果解析 02 关于df -h命令,之前10月8日的文章中已经写过一篇,今天我们主要来看看df -h查询出来的这几个目录的介绍...,/dev/sda2等等,上面命令结果中的文件系统就和这个一样。...它的用途如下: LINUX中可以把一些程序的临时文件放置在tmpfs中,利用tmpfs比硬盘速度快的特点提升系统性能。 3..../dev/mapper/data-main文件系统,Device mapper是Linux2.6内核中提供的一种从逻辑设备到物理设备的映射机制,在该机制下,用户能够很方便的根据自己的需要实现对存储资源的管理

    8.2K10

    Linux中的包名xxx和xxx-dev有什么区别?

    引入 在安装包的时候,有时候需要安装xxx的包,有时候又需要安装xxx-dev的包 (在CentOS系列发行版上则是xxx-devel)。这两类包之间又什么区别呢? 2....结论 不包含-dev的包里面包含的是运行所需要的二进制文件或者连接库文件(如xxx.so),而包含-dev的包则包含包的源码文件(如.h文件),为的是在编译使用了这些库的程序的时候,能找到对应的头文件,...否则只有二进制文件或者.so文件,编译时会报代码找不到头文件的错误。...如果想要编译一个叫lxml的库,它依赖Python的源码,例如这里的代码依赖Python.h这个文件,因此我们需要安装python-dev包,把Python.h安装到本地上,这样lxml包才能正常安装。

    79840

    linux重要的目录之proc和dev目录

    /proc/目录 虚拟文件系统,将内核与进程状态归档为文本文件(系统信息都存放这目录下) Linux系统上的/proc目录是一种文件系统,即proc文件系统。.../proc/modules 目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序啦!.../dev/目录 设备文件分为两种:块设备文件(b)和字符设备文件(c) 设备文件一般存放在/dev目录下 dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。...因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。...hdc /dev/modem => /dev/ttyS[0-9] /dev/pilot => /dev/ttyS[0-9] /dev/random

    3.9K00

    linux重要的目录之proc和dev目录

    /proc/目录 虚拟文件系统,将内核与进程状态归档为文本文件(系统信息都存放这目录下) Linux系统上的/proc目录是一种文件系统,即proc文件系统。.../proc/modules 目前我们的 Linux 已经加载的模块列表,也可以想成是驱动程序! /proc/mounts 系统已经挂载的数据,就是用 mount 这个命令呼叫出来的数据啦!.../dev/目录 设备文件分为两种:块设备文件(b)和字符设备文件(c) 设备文件一般存放在/dev目录下 dev是设备(device)的英文缩写。/dev这个目录对所有的用户都十分重要。...因为在这个目录中包含了所有Linux系统中使用的外部设备。但是这里并不是放的外部设备的驱动程序,这一点和windows,dos操作系统不一样。它实际上是一个访问这些外部设备的端口。...[0-9] /dev/pilot => /dev/ttyS[0-9] /dev/random 随机数设备 /dev/urandom 随机数设备 相关文章 linux重要的目录之etc linux重要目录之

    3.1K20

    【Dev Club 分享】深度学习在 OCR 中的应用

    Dev Club 是一个交流移动开发技术,结交朋友,扩展人脉的社群,成员都是经过审核的移动开发工程师。每周都会举行嘉宾分享,话题讨论等活动。...OCR(光学字符识别)旨在从图片中检测和识别文字信息,本次分享将介绍我们在OCR技术研发过程中的一些方法和经验总结。...近些年深度学习在人脸识别、目标检测与分类中达到了前所未有的高度,也开启了深度学习在文字分类的新浪潮。...Google在photoOCR中设计了一套基于HOG特征作为输入的5层CNN网络作为OCR识别模型,该套系统在Google多项产品中得到成功的应用。...参考问题3的回答 Q5:亚飞老师好,通用场景中要面临不同的环境,比如在移动端应用的OCR技术,在处理不同噪声,模糊,光照不均等情形时,有什么处理经验可借鉴和分享么?

    3.6K80

    Linux系统驱动之通用驱动i2c-dev分析

    资料下载 coding无法使用浏览器打开,必须用git工具下载: git clone https://e.coding.net/weidongshan/linux/doc_and_source_for_drivers.git...视频观看 百问网驱动大全 通用驱动i2c-dev分析 参考资料: Linux驱动程序: drivers/i2c/i2c-dev.c I2C-Tools-4.2: https://mirrors.edge.kernel.org...在入口函数调用 有入口自然就有出口 在出口函数unregister_chrdev 辅助函数(帮助系统自动创建设备节点) class_create device_create 2. i2c-dev.c...注册过程分析 2.1 register_chrdev的内部实现 2.2 i2c-dev驱动的注册过程 3. file_operations函数分析 i2c-dev.c的核心: static const...i2cdev_ioctl, .compat_ioctl = compat_i2cdev_ioctl, .open = i2cdev_open, .release = i2cdev_release, }; 主要的系统调用

    2K21

    vuejs中执行npm run dev出现页面cannot GET问题

    1.问题描述 最近用vue-cli搭建了一个小项目,其中在对项目进行打包测试时修改了webpack.base.conf.js中的配置信息,之后再用npm run dev之后出现如下的情况: 最近又有网友说到这个问题...,按照以上说的方面检查了一下,还是出现了这个问题,查了一下出现这个问题的原因还可能跟node的版本还有npm版本相关,所以要把node升级较高版本,vue-cli要基于3.0以上的版本支持。...nodejs-npm-npm-doesnt-work-get-always-this-error-error-cannot-find-module-are-we-there-yet 2017.8.30 今天又发现了关于这个问题的一个原因...,是由于创建项目的时候用了ESLint语法检测,所以一点语法规范都会造成找不到页面,并且这些错误是在控制台是可以找到的。

    75130

    Dev 日志 | 文章《快速体验知识图谱 OwnThink》中的技术问题

    [Dev log.png] 社区小伙伴反馈在实践文章《使用图数据库 Nebula Graph 数据导入快速体验知识图谱 OwnThink》时,遇到了一些问题,Nebula Graph 将在本文对该文章中出现的问题进行...该错误在最新打包的 oss 包里已经更正。...name type: string 报错信息:writing tcp 127.0.0.1... write: broken_pipe 使用 nebula-importer 导数据的过程中...占用内存过高 在部分低配置机器上内存不够的问题,原默认配置针对 64 GB 以上内存的机型。更改了默认 partition 数量, 默认 wal 文件大小和 wal buffer 大小。.../vesoft-inc/nebula,如果你在使用 Nebula Graph 过程中遇到任何问题,欢迎 GitHub 联系我们或者加入微信交流群,请联系微信号:NebulaGraphbot  推荐阅读

    53521

    --save-dev和--save的区别

    --save-dev,会在devDependencies里面添加依赖 -D,会在devDependencies里面添加依赖 --save,会在dependencies里面添加依赖 -S,会在dependencies...测试的结果就是,无论是--save还是--save-dev,对于打包都没有任何影响。devDependencies和dependencies两种情况,打包出来的main.js都把jQuery打包进去。...最后得出 的结论是,--save-dev和--save在平时开发的时候,对于打包部署上线是没有任何影响的。...如果你是发布一个包给别人用,而你开发的包依赖第三方的包,那么你如果是--save,那么别人安装你开发的包,会默认下载你依赖的包,如果你是--save-dev,那么别人安装你开发的包,是不会默认帮忙下载你依赖的包.../src/index.js 以上就是对--save和--save-dev的一些测试,想更快的得出结论其实是自己发布一个包。至于本人的答案是不是存在错误,欢迎指出,因为只是自己简单测试的结果。 (完)

    1.3K10

    Git与IDEA: 解决`dev`分支切换问题及其背后原因 为何在IDEA中无法切换到`dev`分支?全面解析!

    摘要 当我们深陷Git和IDEA的协同工作中,偶尔会遭遇一些让人挠头的问题。其中,无法切换到dev分支尤为常见。...这些障碍可能会中断我们的工作流程,甚至可能导致我们浪费大量的时间去寻找解决方案。今天,我要与你们分享一个在IDEA中与Git集成时常遇到的问题,以及我是如何一步步解决它的。...Git中的分支机制 在Git中,分支是实现并行开发的关键。它使开发者能够在同一代码库中同时开发多个功能或修复。...: git checkout -b dev origin/dev 确保没有冲突: 查看工作区和暂存区,确保没有未提交的更改: git status 拉取最新的dev分支: 保持dev分支与远程版本同步...希望这篇文章能为你提供有关如何在IDEA中管理Git分支的有用知识。 希望这篇文章能够帮助你解决在IDEA中遇到的dev分支切换问题。

    43710

    【Linux】关于Linux中的权限

    而Linux的文件类型和后缀无关(后缀名可以作为提示,用户可以使用后缀区分文件类型),但是对linux来说区分文件和文件本身的后缀是无关的(但是gcc等工具对文件后缀可能有要求)。...后缀本质就是文件名的一部分。 开始之前,我们输入ll指令,来看看前面10个字符代表什么意思: 在linux中,是通过ll显示的众多属性列中的第一列的第一个字符来区分文件类型的。...,显示器) [hwc@VM-8-3-centos test5]$ ll /dev/tty crw-rw-rw- 1 root tty 5, 0 Sep 29 16:02 /dev/tty s:socket...则无法用ls等命令查看目录中的文件内容...., 用户就可以删除目录中的文件, 而不论这个用户是否有这个文件的写权限。

    7.2K20

    扫码

    添加站长 进交流群

    领取专属 10元无门槛券

    手把手带您无忧上云

    扫码加入开发者社群

    相关资讯

    热门标签

    活动推荐

      运营活动

      活动名称
      广告关闭
      领券