问题标签 [printk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
934 浏览

linux - 用户模式下与 printk 有什么相似之处?

我们可以使用 printk 在内核驱动程序中发送调试消息。我有一个调用内核驱动程序的用户模式 ​​AP。我想同时输出带有内核模式驱动程序的用户模式 ​​AP 调试消息。怎么做?

0 投票
5 回答
1837 浏览

multithreading - linux内核模块中printk的奇怪行为

我正在为 linux 内核模块编写代码并在其中遇到奇怪的行为。这是我的代码:

基本上我试图等待线程完成然后打印一些东西。上面的代码确实实现了该目标,但"printk("debug\n");"没有注释。一旦我注释掉printk("debug\n");运行代码而不进行调试并通过 insmod 命令加载模块,模块就会挂起,并且它似乎在递归中丢失了。我不为什么 printk 会以如此大的方式影响我的代码?

任何帮助,将不胜感激。

问候。

0 投票
7 回答
47097 浏览

linux - 内核中的打印输出到哪里去了?

我正在调试一个linux的驱动程序(特别是ubuntu server 9.04),代码中有几个printf语句。

在哪里可以查看这些语句的输出?

EDIT1:我想要做的是使用 proc 文件系统写入内核。打印代码是

在 kern.log 中,当我尝试覆盖文件 /proc/net/madwifi/ath1/fractel_config(当然时间不同)时,我看到以下消息。

有什么解释吗?

0 投票
2 回答
7868 浏览

c - Linux内核调试打印输出?

有没有更好的方法来调试 Linux 内核中的打印输出?

现在乱扔代码:

这不是很干净。

应该有一种方法可以#ifdef以某种不错的方式对整行进行 :ed。

0 投票
2 回答
6518 浏览

makefile - 为 pr_debug 和 printk 设置 CFLAGS

我正在尝试了解 Linux 内核模块,并希望查看pr_debugand的输出printk。我正在使用 GNU Make。
我知道要获取pr_debug消息,我们必须使用DDEBUG.

那么,如何启用printk语句?

可以说文件名是kvm.c. 这两者有什么区别:

这个语句有什么作用:

[编辑]:
看起来我对方括号的使用引起了一些混乱。实际上,[文件名],我的意思是一些文件,比如 kvm.c。

0 投票
2 回答
847 浏览

linux-kernel - printk 第二个输出

当我 printk(KERN_INFO, ...) 时,我得到如下信息:

<6>[116584.000183] ...

方括号之间的数字究竟是多少?

0 投票
1 回答
399 浏览

kernel - 什么是日志级别: printk ("释放 initrd 内存:%ldk freed\n", (end - start) >> 10);

在核函数调用中

没有提到内核日志级别。那么 deafult 将采用的日志级别是什么?

0 投票
1 回答
890 浏览

linux - linux中的printk实现

我想知道 printk 如何将数据从内核空间传递到用户空间。我听说过relayfs,它提供了高效且统一的文件系统来将大量数据从内核空间传输到用户空间,printk 是否也使用relayfs 或者它有自己的实现?

0 投票
2 回答
2539 浏览

c - Linux 内核:来自“open”系统调用的 printk 不起作用

我有个疑问。

我打开内核并更改目录 linux-3.1.1/fs/open.c

我在 open.c 中更改了以下代码。

我只放了这一行:printk(KERN_EMERG "Testing");

我包括图书馆:<linux/kernel.h><linux/printk.h>

所以我编译并重新启动了我的 linux(Ubuntu)。在重新启动过程中,屏幕上出现了很多“测试”。所以到目前为止它还可以。


但现在我有一个问题。我用c创建了这个程序。

我编译了这个程序并执行并运行良好。但我不明白为什么“测试”没有出现在外壳上。我的意思是,如果当我重新启动电脑时出现了很多“测试”这个词,为什么当我执行上面的程序时这个词没有出现。只是补充一下,我在上面的代码中包含了这个库:

unistd.h, fcntl.h, stdio.h,stdlib.h

感谢你们。

0 投票
2 回答
16461 浏览

c - printk 在中断处理程序中,真的那么糟糕吗?

每个人都知道中断处理程序应该尽可能短。并且在中断处理程序中添加诸如printk调试之类的功能是不应该做的事情。实际上,我之前在为我编写的中断驱动的字符设备调试linux内核时尝试过,它破坏了驱动程序的时序。

我的问题是,为什么会这样? printk函数被缓冲!这意味着,据我了解,数据被插入到队列中,并且稍后处理,很可能是在中断处理程序完成之后。

那么为什么它不起作用呢?