Linux内核崩溃调用堆栈长度

标签 linux linux-kernel linux-device-driver embedded-linux

谁能告诉我如何轻松增加 Linux 内核崩溃时报告的调用堆栈函数的数量?

目前我看到:

[<80100ca8>] (free_buffer_head) from [<80100d2c>] (try_to_free_buffers+0x7c/0xbc)
[<80100d2c>] (try_to_free_buffers) from [<800a9358>] (invalidate_inode_page+0x64/0x7c)
[<800a9358>] (invalidate_inode_page) from [<800a9454>] (invalidate_mapping_pages+0xe4/0x168)
[<800a9454>] (invalidate_mapping_pages) from [<80280f68>] (blkdev_ioctl+0x40c/0x910)
[<80280f68>] (blkdev_ioctl) from [<800e78a0>] (do_vfs_ioctl+0x3dc/0x59c)
[<800e78a0>] (do_vfs_ioctl) from [<800e7a94>] (SyS_ioctl+0x34/0x5c)
[<800e7a94>] (SyS_ioctl) from [<8000e460>] (ret_fast_syscall+0x0/0x30)

但我真的很想看到更多输出以找到错误的根源。

非常感谢

最佳答案

我想你已经看到了一切。 SyS_ioctl 是用户空间调用的入口函数,free_buffer_head 是实际崩溃的函数。它不会提供来自用户空间程序的回溯,因为首先它可以是特定于应用程序的,其次它与内核崩溃无关。

关于Linux内核崩溃调用堆栈长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35314134/

相关文章:

linux - 如何改善我在 Linux 桌面上的编程体验?

network-programming - 多线程应用程序中的直接内存访问 (DMA) 调度

php - 通过 PHP 运行两个 linux 命令,在执行第二个之前不要等待第一个结束

linux - 为什么我在 shell 脚本中使用双引号

linux - 内核模块升级,停机时间最短且无需重新启动

linux - clock_gettime的来源

c - 如何获取正在运行的 Linux 内核中存在的结构的实例数?

memory - 测量某个Linux驱动模块的内存使用情况

linux - 如何在 Linux 2.6.29 的 ioctl 中解码 cmd = 3222823425?

android - 为android编译c程序