Linux Kernel pr_debug(), dev_dbg() 以及动态调试
pr_err(), pr_info(), ... / dev_err(), dev_info(), ... 系列函数,在 pr_fmt / dev_fmt 的基础上,调用 vprintk_emit() 实现打印输出。但 pr_debug() / dev_dbg() 比较特殊,有不一样的代码路径。
文件:include/linux/printk.h
/* If you are writing …
pr_err(), pr_info(), ... / dev_err(), dev_info(), ... 系列函数,在 pr_fmt / dev_fmt 的基础上,调用 vprintk_emit() 实现打印输出。但 pr_debug() / dev_dbg() 比较特殊,有不一样的代码路径。
文件:include/linux/printk.h
/* If you are writing …
1. %p
Linux 内核里的 printk 可以打印指针地址,这和 printf() 是一样的:
void *p = 0x1234;
printk("p = %p\n", p);
这里是想打印所指向的地址。实际运行起来后 …
pr_err() 等包装函数
在 Linux 内核里打印信息,除了使用 printk,还可以用 pr_err() 等包装函数,比如:
pr_err("page allocation failed\n");
这个调用相当于 printk(KERN_ERR "page allocation failed\n …
1. Log level 的定义
在 Linux 内核里,printk 经常用来格式化输出,类似于常见的 printf。需要注意的是,printk 有一个 log level 的参数,使用的时候经常 …
Python 命令行经常被拿来当作计算器,进行数字或者逻辑运算。很多时候,特别是在编程时,往往需要以十六进制的方式 …
开启了 kasan 功能以后,每次分配内存,会有额外的 shadow memory,大小为 1/8,用来标记内存分配的信息。每连续 8 个字节,如果都可以访 …
编写 tmux-system-info 的时候,有依赖到高版本 psutil 里的接口功能。
因为发现 Ubuntu 系统里已经安装的 psutil 版本太低,所以准备升级一下:
sudo …
基于 Pelican 生成的静态页面,可以使用 Google Analytics 来统计访问数据。
以下是操作步骤,记录在这里备忘:
在 Ubuntu 19.04 (Disco Dingo) 上使用 tmux 的时候,观察到一个问题,在 w
或者 who
的输出里,会有好多条登录信息;如果 pane
开得多,甚至会满屏 …
在 Python 里,__str__ 和 __repr__ 的功能类似,但又有区别,经常容易搞混。以下列举了它们在使用上的注意点。
__repr__