static int __init hello_init(void) { printk(KERN_EMERG "[ KERN_EMERG ] Hello Module Init\n"); printk( "[ default ] Hello Module Init\n"); return 0; } ...
分类:
其他好文 时间:
2021-01-18 11:37:08
阅读次数:
0
原创dog250Linux阅码场2019-11-13eBPF技术风靡当下,eBPF字节码正以星火燎原之势被HOOK在Linux内核中越来越多的位置,在这些HOOK点上,我们可以像编写普通应用程序一样编写内核的HOOK程序,与以往为了实现一个功能动辄patch一整套逻辑框架代码(比如Netfilter)相比,eBPF的工作方式非常灵活。我们先来看一下目前eBPF的一些重要HOOK点:将来这个is_X
分类:
其他好文 时间:
2020-12-02 12:43:45
阅读次数:
13
1、简介(基于s3c2440 linux) 在内核调试技术之中,最简单的就是printk的使用了,它的用法和C语言应用程序中的printf使用类似,在应用程序中依靠的是stdio.h中的库,而在linux内核中没有这个库,所以在linux内核中,使用这个printk就要对内核的实现有一定的了解。 p ...
分类:
系统相关 时间:
2020-07-29 21:55:06
阅读次数:
89
#define CMD_ERR_PRINT(devname, cmd, arg) do { \ char *p[4] = {"", "W", "R", "WR"}; \ if (0 == _IOC_DIR(cmd)) { \ printk(KERN_ERR "ERROR: /dev/%s not f ...
分类:
其他好文 时间:
2020-02-22 11:42:27
阅读次数:
118
在GNU C中,宏可以接受可变数目的参数,就象函数一样,例如: 1 2 #define pr_debug(fmt,arg...) \ printk(KERN_DEBUG fmt, ##arg) 用可变参数宏(variadic macros)传递可变参数表 你可能很熟悉在函数中使用可变参数表,如: 1 ...
分类:
编程语言 时间:
2020-02-04 21:55:50
阅读次数:
67
在对内核进行代码调试的时候,除了打开相应的内核开发配置选项之外,最普通也是最常用的调试就是打印出相关信息进行调试,对某些怀疑的变量进行监视,在用户空间下,我们最常用的方式是通过printf()函数来进行相关信息的输出,而在内核调试中,我们常用printk()函数来进行相关关键信息的输出,与print ...
分类:
其他好文 时间:
2020-01-21 15:54:53
阅读次数:
92
1. printk + /proc/sys/kernel/printk printk(KERN_DEBUG "I have a dream\n"); + 2. cat /proc/ksyms (内核符号表) 3. gdb gdb vmlinux /proc/kcore (适用于检查符号表) 4. k ...
分类:
系统相关 时间:
2020-01-16 12:43:53
阅读次数:
126
我们在写程序时,可能有这种需要,每次都要重复写某个东西。 在写c程序时候,经常写如下: 这样,使用vi的模板,很方便 1.创建模板 我用到" .c"文件,直接在c_template.c中加入一些内容 保存并退出 2.修改vi配置文件 在最后面加上一句 保存并退出 3.新建一个test.c文件 如下: ...
分类:
系统相关 时间:
2019-12-25 16:14:40
阅读次数:
129
一、问题 进程被OOMkill之后退出,在/var/log/messages文件中并没有发现对应的系统日志,那么日志去哪里了呢? 二、内核日志如何获得 内核相关日志相关功能主要集中在kernel\printk\printk.c,虽然功能比较简单,但是在内核代码组织结构中还是享有一个单独的文件夹,可见 ...
分类:
其他好文 时间:
2019-12-21 20:26:06
阅读次数:
114