首页
学习
活动
专区
圈层
工具
发布

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

的地方,或者程序员不容易猜测系统哪里出了问题的地方; 动态调试使用方法 打开内核动态调试开关,make menuconfig选中CONFIG_DYNAMIC_DEBUG以及CONFIG_DEBUG_FS Linux...启动后,使用命令行挂载上dbgfs mkdir /mnt/dbg mount -t debugfs none /mnt/dbg 使用下面方式控制你想输出dev_dbg()信息 1.控制某个文件所有dev_dbg...> /mnt/dbg/dynamic_debug/control 运行程序,使用dmesg则可以看到相应dev_dbg()的输出信息 当调试结束,不再想输出dev_dbg()信息了,使用下面命令关闭即可...alidsc]ca_dsc_probe_dt =p "get dev-index error12" 则会打印 所以在应用层,用户就可以通过使用echo来控制dynamic_debug/control文件...代码分析 从代码角度,也很容易看出dev_dbg()的设计: include/linux/device.h include/linux/dynamic_debug.h lib/dynamic_debug.c

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

    1.5 为x64dbg编写插件

    我们以C/C++语言为开发模板,x64dbg插件表现出来的其实也是一个DLL文件,他里面导出了x64dbg所需要的几个函数,从而可以在x64dbg启动时被加载,除去所必须的导出函数外,其他功能的实现与DLL...,x64dbg官方针对配置方法给予了一个模板文件,读者可以自行去下载该模板使用。...(2)开发插件实战在本节,笔者将带领大家实现一个简单的x64dbg插件,该插件的功能很简单,当用户点击菜单栏中的选项是,我们让其弹出一个消息框,此处为了开发方便,我做了精简化,你可以直接使用我的方法来新建文件...,建出来的文件只有两个非常简洁。...首先在头文件部分新建一个pluginmain.h并增加PLUGIN_NAME替换成自己项目的名字。

    60810

    1.5 为x64dbg编写插件

    我们以C/C++语言为开发模板,x64dbg插件表现出来的其实也是一个DLL文件,他里面导出了x64dbg所需要的几个函数,从而可以在x64dbg启动时被加载,除去所必须的导出函数外,其他功能的实现与DLL...,x64dbg官方针对配置方法给予了一个模板文件,读者可以自行去下载该模板使用。...(2)开发插件实战 在本节,笔者将带领大家实现一个简单的x64dbg插件,该插件的功能很简单,当用户点击菜单栏中的选项是,我们让其弹出一个消息框,此处为了开发方便,我做了精简化,你可以直接使用我的方法来新建文件...,建出来的文件只有两个非常简洁。...首先在头文件部分新建一个pluginmain.h并增加PLUGIN_NAME替换成自己项目的名字。

    34530

    【Linux】Linux文件

    Linux文件操作 Linux中,一切皆文件(网络设备除外)。 硬件设备也“是”文件,通过文件来使用设备。 目录(文件夹)也是一种文件。...boot:这里存放的是启动Linux时使用的一些核心文件,包括一些连接文件和镜像文件。...deb:deb是Device(设备)的缩写,该目录下存放的是Linux的外部设备,在Linux中访问设备的方式和访问文件的方式是相同的。...tmp:用来存放一些临时文件 media:Linux系统会自动识别一些设备,例如U盘、光驱等,当识别后,Linux会把识别的设备挂载到这个目录下。...mnt:临时挂载其他文件。 proc:包含了进程的相关信息。 ---- Linux文件的操作方式 文件描述符fd fd是一个大于等于0的整数。

    47.6K31

    【Linux】Linux文件IO

    例如: fwrite、fread、fopen、fclose、fseek、fflush ---- 文件系统接口 文件系统——一种把数据组织成文件和目录的存储方式,提供了基于文件的存取接口,并通过文件权限控制访问...文件系统缓存 主存(通常是DRAM)的一块区域用来缓存文件系统的内容,包含各种数据和元数据。...---- O_SYNC 缓存同步 为了保证磁盘系统与缓冲区内容一致,Linux系统提供了sync,fsync,fdatasync三个函数。...fsync——将fd对应文件的块缓冲区立即写入磁盘,并等待实际写磁盘操作结束返回。 fdatasync——类似fsync,但只影响文件的数据部分。而除数据外,fsync还会同步更新文件属性。...---- Linux文件IO流程图 内核中会有一个线程,不断地将高速页缓冲区中的数据写入到物理磁盘中。

    35.5K30

    Linux文件—文件锁

    对于文件的操作而言,“锁定”操作是对文件(尤其是对共享文件)的一种高级的文件操作。...当某进程在更新文件内数据时,期望某种机制能防止多个进程同时更新文件从而导致数据丢失,或者防止文件内容在未更新完毕时被读取并引发后续问题,这种机制就是“文件锁”。...在Linux系统中,通常采用“文件锁”的方式,当某个进程独占资源的时候,该资源被锁定,其他进程无法访问,这样就解决了共享资源的竞争问题。 文件锁包括建议性锁(又名“协同锁”)和强制性锁两种。...建议性锁要求每个相关进程访问文件的时候检查是否已经有锁存在并尊重当前的锁。一般情况下不建议使用建议性锁,因为无法保证每个进程都能自动检测是否有锁,Linux内核与系统总体上都坚持不使用建议性锁。...在Linux内核提供的系统调用中,实现文件上锁的函数有lockf()和fcntl(),其中lockf()用于对文件加建议性锁,这里不再讲解。fcntl()函数既可以加建议性锁,也可以加强制性锁。

    11.6K20

    linux 移动 文件,linux移动文件命令

    linux移动文件命令 mv命令 功能:为文件或目录改名或将文件由一个目录移入另一个目录中。该命令如同DOS下的ren和move的组合。...语法:mv [选项] 源文件或目录 目标文件或目录 说明: 视mv命令中第二个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至一个新的目录中。...当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。...当第二个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定的源文件均移至目标目录中。在跨文件系统移动文件时,mv先拷贝,再将原有文件删除,而链至该文件的链接也将丢失。...例2:将文件wch.txt重命名为wjz.doc$ mv wch.txt wjz.doc 相关视频教程推荐:《Linux教程》 版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。

    24.8K40

    x64dbg 插件开发SDK环境配置

    x64dbg 是一款开源的应用层反汇编调试器,旨在对没有源代码的可执行文件进行恶意软件分析和逆向工程,同时 x64dbg 还允许用户开发插件来扩展功能,插件开发环境的配置非常简单,如下将简单介绍x64dbg...默认情况下当你下载好x64dbg时,在pluginsdk目录下都会包含lib库,这个库可以直接引用到项目内的。...引入后,我们去官方下载好插件模板文件:https://github.com/x64dbg/PluginTemplate 此处为了开发方便,我做了精简化,你可以直接使用我的方法来新建文件,建出来的文件只有两个非常简洁...首先在头文件部分新建一个pluginmain.h 并增加PLUGIN_NAME替换成自己项目的名字。...functions bool pluginInit(PLUG_INITSTRUCT* initStruct); void pluginStop(); void pluginSetup(); 其次新建一个实现文件

    72410

    Linux文件

    在Linux下,一切皆文件。这是我们嵌入式Linux开发与应用这门课的老师经常挂在嘴边的一句话。足以体现出在Linux操作系统中,对于一切资源的管理都是对文件的操作。...Linux系统中每一个分区都是一个文件系统,都有自己的目录层次。Linux会将这些在不同分区的,单独的文件系统按一定的方式形成一个系统的总目录层次结构。...目录在Linux下也是文件,称为目录文件。目录文件的内容是该目录的目录项,目录项是该目录下的文件和目录相关的信息。...Linux采用的是标准的目录结构——树形结构(B树家族) Linux既然采用了树形结构的目录形式,整个OS只有一棵文件树,这样方便OS对文件进行统一管理。...Linux文件分类: 普通文件:用户和OS的数据,程序等信息文件 目录文件:Linux文件系统将文件索引节点号和文件名同时保存在目录中,所以目录就是一张表。

    8.1K20

    1.5 为x64dbg编写插件

    我们以C/C++语言为开发模板,x64dbg插件表现出来的其实也是一个DLL文件,他里面导出了x64dbg所需要的几个函数,从而可以在x64dbg启动时被加载,除去所必须的导出函数外,其他功能的实现与DLL...,x64dbg官方针对配置方法给予了一个模板文件,读者可以自行去下载该模板使用。...(2)开发插件实战在本节,笔者将带领大家实现一个简单的x64dbg插件,该插件的功能很简单,当用户点击菜单栏中的选项是,我们让其弹出一个消息框,此处为了开发方便,我做了精简化,你可以直接使用我的方法来新建文件...,建出来的文件只有两个非常简洁。...首先在头文件部分新建一个pluginmain.h并增加PLUGIN_NAME替换成自己项目的名字。

    57930

    1.5 为x64dbg编写插件

    我们以C/C++语言为开发模板,x64dbg插件表现出来的其实也是一个DLL文件,他里面导出了x64dbg所需要的几个函数,从而可以在x64dbg启动时被加载,除去所必须的导出函数外,其他功能的实现与DLL...,x64dbg官方针对配置方法给予了一个模板文件,读者可以自行去下载该模板使用。...(2)开发插件实战 在本节,笔者将带领大家实现一个简单的x64dbg插件,该插件的功能很简单,当用户点击菜单栏中的选项是,我们让其弹出一个消息框,此处为了开发方便,我做了精简化,你可以直接使用我的方法来新建文件...,建出来的文件只有两个非常简洁。...首先在头文件部分新建一个pluginmain.h并增加PLUGIN_NAME替换成自己项目的名字。

    33210

    # X64Dbg 介绍->表达式

    X64Dbg 介绍->表达式 一丶 字符串格式与Log指令 1.1 前言 x64Dbg是一个开源的ring3层的调试器,其内置了很多强大的命令供我们使用....加载模块的应用 这些命令很常见,因为在X64DBG里面跳转地址的话可以直接使用模块基地址+偏移(RVA)来进行跳转....表达式函数 — x64dbg 文档 4.2.1 字符串函数 字符串表达式函数我们在Log讲解的时候已经接触过了....返回主模块基地址 mod.rva(addr) ---> 如果addr不在模块则返回0,否则返回 addr所位于模块的 RVA偏移 mod.offset(addr)---> 获取地址所对应的文件偏移量...== ($breakpointcounter % ) == 线程id断下 tid() == C0 重要 断点为字符串的时候断下 以CreateFile为例,如果我们想命中它打开指定文件的时候断下

    2.6K40

    1.1 熟悉x64dbg调试器

    ;图片下载好以后解压这个压缩包,读者会看到两个文件夹,其中pluginsdk代表的是x64dbg的开发工具包,如果需要开发自定义插件则需要引入该工具包,而release则是编译版本的x64dbg本体,打开...release文件夹读者会看到如下图所示的目录结构,其中x32/x64分别代表的是两种架构的调试器,而如果用户需要安装调试器到系统内只需要点击x96dbg.exe并依次点击下一步即可完成调试器的安装;图片...1.1 如何启动调试不同于OllyDBG调试器,x64dbg默认就支持两种调试模式,通常读者可以选择使用打开文件的方式调试程序,也可以直接附加到一个已经存在的进程上调试同时支持脱离进程,需要注意的是为了保证最佳的调试效果...当用户需要打开调试程序时,可以通过菜单"文件"->"打开"(或者按下快捷键F3),会弹出如下图所示的打开文件对话框,默认对话框会停留在x64dbg软件的根目录,此时通过选择所需调试的进程即可打开调试;图片第二种调试方式则是直接附加到一个已经存在的进程上...:反汇编窗口可以将二进制文件转换为汇编代码,并显示在窗口中。

    1.2K30

    1.1 熟悉x64dbg调试器

    ; 下载好以后解压这个压缩包,读者会看到两个文件夹,其中pluginsdk代表的是x64dbg的开发工具包,如果需要开发自定义插件则需要引入该工具包,而release则是编译版本的x64dbg本体,打开...release文件夹读者会看到如下图所示的目录结构,其中x32/x64分别代表的是两种架构的调试器,而如果用户需要安装调试器到系统内只需要点击x96dbg.exe并依次点击下一步即可完成调试器的安装;...1.1 如何启动调试 不同于OllyDBG调试器,x64dbg默认就支持两种调试模式,通常读者可以选择使用打开文件的方式调试程序,也可以直接附加到一个已经存在的进程上调试同时支持脱离进程,需要注意的是为了保证最佳的调试效果...当用户需要打开调试程序时,可以通过菜单"文件"->"打开"(或者按下快捷键F3),会弹出如下图所示的打开文件对话框,默认对话框会停留在x64dbg软件的根目录,此时通过选择所需调试的进程即可打开调试;...显示程序的汇编指令:反汇编窗口可以将二进制文件转换为汇编代码,并显示在窗口中。

    1.8K10
    领券