问题标签 [kgdb]

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 投票
0 回答
412 浏览

eclipse - Eclipse 是否支持内核调试 (KGDB)?

我可以使用 Eclipse GUI 通过 KGDB 进行内核调试吗?

0 投票
1 回答
40 浏览

kgdb - 内核 2.6.37 是否有 kgdb?

我在内核中使用 kgdb 时遇到问题。我怀疑 kgdb 仅适用于特定的 linux 版本,而 2.6.37 没有?尝试在 web 中搜索 2.6.37 的补丁,但没有给出结果。有没有人知道或厌倦 kgdb ?有什么可以使它与 2.6.37 一起工作的吗?

谢谢,冉

0 投票
1 回答
361 浏览

linux - Linux Kernel Remote Debugging using KGDB: GDB 不识别函数?

我用调试信息和 KGDB 交叉编译了 arm 的内核源代码。

当我在主机中运行 gdb 时:

当我尝试在函数中设置断点时,GDB 说它无法识别该函数。例如:

请帮忙 !!

0 投票
0 回答
242 浏览

android - Nexus 5 的 KGDB

我正在为 Nexus 5 调试一个内核。它有很多错误,手机永远无法正常启动,因为有很多错误。我想通过音频插孔用 KGDB 调试它(因为它是一个串行端口)。我已经学会了如何编译内核以启用 kgdb,但仍然无法正常工作,因为我无法在内核崩溃之前通过 minicom 停止内核执行。我怎样才能使 KGDB 工作?

0 投票
1 回答
1339 浏览

linux - 远程 'g' 数据包回复太长 aarch64 arm64

我正在尝试设置 KGDB 来调试我们的 arm64 内核。我的设置是目标在内核 3.14 上运行(一些 arm64 kgdb 补丁向后移植),在主机上我使用 linaro 工具链 4.8 aarch64-linux-gnu-gdb,每当我发出:

我收到错误消息:

我在这个问题上搜索了很多,但没有一个适合我。我认为这个问题是 arm64 特有的。这里有没有人知道如何进行?

0 投票
1 回答
6507 浏览

linux - 如何更改gdb中的执行线程?

我目前正在使用 KGDB 调试内核代码。每当我闯入时,我自然会跳到 kgdb 的中断处理程序。在 GDB 下,我运行了以下命令。

输出将是

7 线程 7 (rcu_sched) 0x0000000000000000 in irq_stack_union ()

6 线程 5 (kworker/0:0H) 0x0000000000000000 in irq_stack_union ()

5 线程 3 (ksoftirqd/0) 0x0000000000000000 in irq_stack_union ()

4 线程 2 (kthreadd) 0x0000000000000000 in irq_stack_union ()

3 线程 1 (init) 0x0000000000000000 in irq_stack_union ()

2 线程 3754 (Xorg) 0x0000000000000000 in irq_stack_union ()

  • 1 线程 4294967294 (shadowCPU0) kgdb_breakpoint()

    在内核/调试/debug_core.c:1042

然后,我将跳过期望在不同线程中结束的代码(我对 Xorg 感兴趣),但是在我单步执行代码之后,下一个执行线程变得 cpu 空闲。

  • 1 线程 4294967294 (shadowCPU0) cpu_idle_loop () at kernel/cpu/idle.c:116

如何将我的调试上下文切换到 Xorg 或任何其他线程,另外 irq_stack_union () 是什么意思。线程是空闲挂起的中断吗?

0 投票
0 回答
217 浏览

linux-kernel - kgdb virtualbox 目标返回错误代码 22

我正在尝试调试在 virtualbox 上运行的实时 Linux 内核。我在内核中添加了适当的设置(使用该.config文件,通过启用 KGDB 并在内核中添加调试信息)。

我的串行端口是一个命名管道(套接字),然后我使用它重定向socat以获取相应的 PTY。

然后我用相应的 vmlinux 文件启动 gdb 并针对从上面的 socat 获得的 PTY

我不明白的是,这种情况以前从未发生过。突然之间,这似乎出现了。

渴望您的意见

0 投票
1 回答
26 浏览

kgdb - kgdb补丁版本问题

我的内核版本是 2.6.35。我在网上找不到 kgdb 2.6.35。

任何人都知道我可以使用哪个版本的 kgdb?

0 投票
2 回答
1060 浏览

linux - Linux内核远程调试:无法重新进入调试器

我正在使用 kgdb/远程 gdb 调试 linux ubuntu 内核。我有 2 台计算机 - ubuntu 目标和 Windows 主机。计算机使用串行端口和零调制解调器电缆连接。

在目标 ubuntu 系统中启用了 KGDB 支持,来自 KGDB 的命令选项:

kgdbwait kgdboc=ttyS0,115200

在我的 Windows 系统上,我有 MinGW gdb build (x86_64):

GNU gdb (GDB) 7.4 版权所有 (C) 2012 Free Software Foundation, Inc. 此 GDB 配置为“x86_64-w64-mingw32”。

我启动我的目标系统,它一直等到远程调试器连接。我在 GDB 窗口中输入以下命令:

我的 gdb 能够连接到目标并打印以下内容:

在 kernel/debug/debug_core.c:1043 wmb()使用 COM4
???() 进行远程调试;/* 断点后的同步点 */

然后我输入命令来设置断点,以便在操作系统启动时能够返回 gdb:

0xffffffff8124a710 处的断点 1

我还在同一设置的另一次运行中尝试了硬件辅助断点:

当我从目标 ubuntu 控制台输入同步命令时,此断点设置应导致内核喙返回到调试器。

在 GDB 中点击继续后,操作系统启动正常,但我无法将控制权带回 gdb。我尝试在 sys_sync 上设置断点,我试过了

在所有情况下都没有成功。

非常有趣:如果我最初没有在 sys_sync 中设置断点,那么稍后输入同步命令什么也不做。如果我设置 sys_sync 断点,稍后输入同步命令会完全停止目标计算机 - 所以我想在这种情况下实际设置了断点。

如何闯入调试器?GDB 对任何 CTrl-C 命令都没有响应,因此在我最初点击继续后无法继续调试。

可能是架构不兼容(Windows gdb - Linux 目标) - 但似乎确实设置了断点。

请帮忙

0 投票
1 回答
545 浏览

debugging - 如何在 kgdb 中读取 GDTR 和 LDTR?

这个问题涉及为什么您无法在用户模式 ​​GDB 中读取 GDTR 和 LDTR。但是我不明白为什么在调试Linux内核(编译了KGDB)时,在另一台带有串行电缆的机器上使用GDB时不可能。

被调试的内核应该能够告诉调试器 GDTR 和 LDTR 的值,但似乎没有任何 GDB 命令可以这样做。这有充分的理由吗?它只是没有人实施的东西吗?