问题标签 [dmesg]

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 回答
11393 浏览

c++ - 陷阱无效操作码 rip rsp

对于我们的一个应用程序,我们在 /var/log/messages 中看到了下面提到的几条消息:

我无法确定这些输出的含义以及我们如何跟踪导致问题的函数/代码。此外,“陷阱无效操作码”和“一般保护”是什么意思?

0 投票
2 回答
24036 浏览

android - logcat 与 dmesg 有什么区别?

logcat 使用什么日志源(默认设置:adb shell logcat)。dmesg 日志是否包含在 logcat 的输出中?如果不是,dmesg 日志和 logcat 日志有什么区别?

0 投票
10 回答
183317 浏览

logging - 如何将 dmesg 时间戳转换为自定义日期格式?

我试图了解dmesg时间戳,发现很难将其转换为 java 日期/自定义日期格式。

示例 dmesg 日志:

那么如何转换14614.647880为标准日期呢?

0 投票
2 回答
2233 浏览

bash - dmesg 将时间戳转换为人类格式

我有以下 dmesg 示例:

我想将行中的所有时间戳转换为人类格式("%d/%m/%Y %H:%M:%S"

注意:这个系统没有也dmesg -T没有安装 perl。我更喜欢带有 sed 或 awk 的解决方案,但 python 也是一种选择。

我找到了一些解决这个问题的方法,但没有一个能完全满足我的需求。我也不知道如何根据我的需要修改它。

或者

这里还有一个 python 脚本。但是输出一些我对它的理解为零的错误。

谢谢!

0 投票
1 回答
4614 浏览

linux - 让 dmesg 打印人类可读的时间

我希望 dmesg 在不传递 -T 参数的情况下打印人类可读的日期时间。有没有办法在不设置别名的情况下做到这一点?也许在配置文件中?

dmesg 输出:

在这种情况下,我希望 dmesg 打印:

0 投票
2 回答
127 浏览

c - 内核模块加载导致错误

我是内核模块开发的新手,并决定今天编写我的第一个内核模块。

我的模块应该接收 2 个数字作为输入,用空格分隔并将这些数字加在一起。

内核模块通过名为 calc (/proc/calc) 的 proc 条目进行通信,因此从文件中读取将返回输出,写入该文件将提供新输入(2 个数字由空格分隔)

加载模块(insmod)时,我的 shell 卡住了,当中断它并查看 dmesg 时,我看到了内核 BUG 行, 这是跟踪

我不确定这是否是我的代码中的错误,还是 linux 内核中的实际错误,并且很想了解我做错了什么以及如何使用给定的 dmesg 日志开始调试我的模块。

这是我的模块的源代码

我的makefile是非常标准的,

非常感谢提前!

编辑:我使用的是 ubuntu 16.04.02,版本 4.10.0-28,非常标准。

0 投票
1 回答
2599 浏览

linux - printk 消息未显示在 dmesg 日志中

我正在开发一个有趣的简单驱动程序,并且我正在尝试使用printk消息对其进行调试。似乎dmesg不显示最后printk一条消息,让它显示最后一条消息的唯一方法是做 another printk,这反过来也被dmesg.

一些澄清示例:在我的模块的 init 函数中,我打印以下语句:

insmod启动后第一次 ing 后,我看到一条带有 的“受污染的内核”消息dmesg,但是我看不到我打印的消息。

然后,我运行以下命令:

它调用我open打印的函数:

然后调用我read打印的函数:

然后去睡觉。运行后dmesg(当 read 函数休眠时),我突然可以看到我的模块初始化消息,也可以看到“cat opens”消息,但是“cat reading”消息不见了。

使用 ctrl+c 终止 cat 会导致两次打印:“sleep interrupted”,然后是“cat release”。运行dmesg显示“睡眠中断”消息,但缺少“猫释放”消息,依此类推。

有谁知道问题可能是什么?

0 投票
0 回答
642 浏览

logging - 如何禁用特定设备/驱动程序的登录 dmesg (/proc/kmsg)?

我正在使用 TechnoTrend TT-connect S2-3600,它以向 dmesg(分别为 /proc/kmsg)发送垃圾邮件而闻名,但出现以下错误:

由于 I2C 错误不会得到修复,我能做些什么来避免 dmesg 的垃圾邮件?特定设备的 /dev/null 消息是否有任何选项?

0 投票
0 回答
125 浏览

linux - Linux 内核网络 ubuntu 调试消息未随 printk/pr_debug 显示

我已经在 Ubuntu 上重新编译了 Linux 内核,现在升级到 4.17.6。我需要修改 TCP/IP 堆栈部分,特别是拥塞控制算法之一(例如 Vegas)。成功重新编译到4.17.6后,我尝试修改代码,只重新编译相关模块但在dmesg上看不到任何消息。我按照以下步骤测试 printk 和 pr_debug 是否有效,但没有一个有效。

我在修改后的文件上添加了#define DEBUG,然后将以下行添加到所需的函数 net/ipv4/ip_input.c 和 net/ipv4/ip_output.c 中:

我运行了以下命令:

重新启动后,我通过执行 echo 8 | 修改了 printk 文件以显示所有消息级别。sudo dd of=/proc/sys/kernel/printk. 然后尝试从 VM ping 到 VM 并尝试打开网页。然后,尝试通过运行 dmesg | 查看消息 grep 测试:

但是没有显示任何消息,问题出在哪里?

0 投票
1 回答
919 浏览

linux - 如果设备是 ext4,如何将块号映射到来自 vm.block_dump=1 的 dmesg 输出的文件名?

tl; dr:我想查看/获取 dmesg 上报告的块号所属的文件名,vm.block_dump=1例如 dmesg:bash(13515): READ block 5434824 on xvda3 (32 sectors)

当例如。sudo sysctl -w vm.block_dump=1或例如。echo '1' | sudo tee /proc/sys/vm/block_dump然后“Linux 报告发生的所有磁盘读取和写入操作,以及对文件进行的所有块污染。[...] block_dump 的输出被写入内核输出,并且可以使用“dmesg”检索它。当你使用 block_dump 并且您的内核日志记录级别还包括内核调试消息,您可能希望关闭 klogd,否则将记录 block_dump 的输出,导致磁盘活动不正常。” (从这里引用)

“块脏污”不是问题,例如。

我可以看到它的文件名是这样的:

问题在于“Linux 报告发生的所有磁盘读写操作”(引用上面的内容),因为它们是以块的形式报告的,例如。

可以在此处查看负责显示此类消息的内核代码: https ://elixir.bootlin.com/linux/v4.18.5/source/block/blk-core.c#L2542

这些块都不会产生任何 inode 编号,使用以下方法:

我应该得到一个 inode 编号,而不是<block not found>上面的,然后我可以将其与之前的 echo 一起使用来查看文件名。

我尝试了什么:以防块号是扇区大小(512字节)的倍数并且我知道ext4块大小是4096字节(sudo blockdev --getbsz /dev/xvda),我也尝试过(使用乘法的结果):11037768*2, 11037768*4和 11037768*8 结果相同:<block not found>

我在这里想念什么?这些块是指向目录条目还是不是文件名的东西?即便如此,debugfs 不应该仍然产生一个 inode 号吗?
有没有更好的方法来获取文件名?

编辑:(icheck内部debugfs)期望的块号是类似于 debugfsstat在下报告的数字EXTENTS,例如,范围内的任何数字2172716-2172721如下所示:

其他方式:

现在问题仍然存在:这些设备块号(在 dmesg 中为 xvda3 报告的块号)与这些物理偏移量有何关系?

EDIT2:我刚刚确认这些物理偏移编号与块设备编号相同(只是,显然与 dmesg 上报告的不同);下面显示了上述文件的最后一个块,我可以确认它与查看文件时相同vim

我已经在 Qubes OS R4.0 Fedora 28 AppVM 内的 4.18.5 内核下对此进行了测试。.config(如有必要,我可以使用自定义 /patches 重新编译自定义内核- 欢迎提出建议)