【问题标题】:How to Check Kgdb is enabled or not?如何检查 Kgdb 是否启用?
【发布时间】:2012-12-27 00:56:19
【问题描述】:

我有一个内核映像,想用 kgdb 进行调试。 .config 也不可用,否则我可以检查其中的标志。

/proc/sys/文件夹中也没有关于kgdb的条目。

有什么方法可以检查该图像是否启用了 kgdb?

【问题讨论】:

  • 您是否尝试过仅连接它。你在运行什么,它是内核的官方发行版吗? [通常,有 .config 复制到 /boot/config-<versioningstuff>.origin.arch,例如在我的 FC16 系统上,我有 /boot/config-3.6.6-1.fc16.x86_64...
  • 它是非官方的。尝试连接时,它不会等待 kgdb..
  • 听起来好像没有 kgdb... 与构建内核的人核实一下 - 是的,我知道,今天可能有点困难!
  • @MatsPetersson,无论如何我会检查的。同时,如果你有任何替代方法来确保请分享:)
  • 你有内核符号吗?如果是这样,您可以搜索 kgdb_arch_init - 我 99% 确定它不在禁用 KGBD 的内核中。

标签: c linux linux-kernel kernel kgdb


【解决方案1】:

如果您的内核映像是使用选项编译的

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

然后您可以从/proc/config.gz 或使用

获取内核映像的配置

/pathtokernelsource/scripts/extract-ikconfig pathtokernelimage > /tmp/config

从那里您可以使用 grep 或 zgrep 搜索 CONFIG_KGDB,具体取决于您查看的是压缩的还是未压缩的配置文件。

/pathtokernelsource/scripts/extract-vmlinux pathtokernelimage > /tmp/vmlinux 还将从映像中提取 vmlinux 可执行文件。

如果其中包含符号,您可以在该文件中 nm 的输出或 System.map 中搜索您的内核映像中的 kgdb_arch_init 或 kgdb_arch_*,如 cmets 中提到的 Mats Petersson

【讨论】:

  • /proc/config.gz 帮助我获取配置文件。谢谢。
猜你喜欢
  • 2015-01-13
  • 1970-01-01
  • 1970-01-01
  • 2021-08-10
  • 2022-06-27
  • 1970-01-01
  • 2019-02-09
  • 2017-12-24
  • 1970-01-01
相关资源
最近更新 更多