问题标签 [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 投票
1 回答
708 浏览

linux - kgdboe kgdb 内核启动时调试

我试图让内核调试在引导期间工作。我已经按照所有步骤安装它(如何在以太网上使用 kgdb(kgdboe)?)并且在加载后我 insmod 时可以正常连接,但是如果我添加这个

到内核​​引导行,我看不到模块已加载,也没有 kgdbwait。

当我查看我的 kern.log 时,我看到以下内容:

顺便说一句,我有 eth0 和 eth1,但只有 eth1 连接。

有什么建议么?是否只是在启动后才加载 pcie 网卡并导致我出现问题?

另外,为什么我需要指定源或目标 IP 地址?有什么方法可以让 kgdboe 接受所有 IP 地址,即使尝试在启动时加载它?

谢谢

0 投票
1 回答
968 浏览

debugging - 在 Ubuntu 14.04.2 内核上使用 KGDB?

我尝试在 Ubuntu 14.04.2 - 3.16 内核上使用 KGDB。

Target 在 Ubuntu 14.04.2 上运行 3.16 内核。主机在 Ububtu 14.04.2 上运行 3.16 内核。

目标正在等待远程 gdb 连接。

启动我的主机机器并尝试连接目标..

$ gdb ./vmlinux 目标机器的内核镜像文件。$ gdb> 目标远程 /dev/ttyS0

“qsupported 响应中无法识别的项目超时”。

无法进一步进行。任何人都可以通过这个吗?

0 投票
1 回答
95 浏览

kernel - Freebsd 内核崩溃:在恐慌之前运行 ddb 命令

我有一个运行崩溃的 FreeBSD 系统。我认为在编写核心文件之前运行一些 ddb 命令并收集数据会很有用。我想为所有崩溃自动执行此操作。以前有人这样做过吗?

0 投票
0 回答
165 浏览

firewire - 通过火线调试 linux 内核

我花了几天时间研究如何通过火线设置 kgdb。目标系统是 Ubuntu 14.04 kernel 3.19 ,主机系统是 Ubuntu 15.10 kernel 4.2 。我尝试在我的主机系统上重新编译 fireproxy 实用程序 ( http://halobates.de/firewire/ ),但调试不起作用。有人知道一些教程如何在 ubuntu 上通过火线设置 kgdb 吗?我发现很多文章如何通过串行设置它,但没有一篇关于 kgdb+firewire 的文章,上面的例外可能已经过时。

0 投票
1 回答
4855 浏览

gdb - 通过 USB 和串行连接的 KGDB 远程调试连接问题

我在主机和目标之间的串行和 USB 连接方面遇到问题。下面是我的设置。主机和目标都没有任何串行 (DB9) 端口。

主机:运行 windows + VMshare + Ubuntu

目标:运行 linux kernel 3.19 。有一个充当串行端口的 MINI usb 端口,我认为它(CP210x uart to usb)

连接 1:主机(USB 到 DB9 公头-PL2303)+ DB9 母头到母头 +(DB9 公头到 USB)目标。

连接2:主机(USB)--cable--(USB mini)目标

主机( ubuntu VM ),可以将 USB 设备(两种连接类型)识别为 /dev/ttyUSB0。由于 VM 接管了设备控制,因此该设备不会显示在 Windows 设备管理器中。

目标引导进入 UEFI shell。我修改 syslinux.cfg 文件以将“kgdbwait kgdboc =ttyS0, 115200”附加到 APPEND 标志。保存更改(按 F2)然后退出(按 F3)。启动进入镜像。Target 现在进入 kdb 提示符并显示以下消息

在主机端,我执行以下命令,以下是错误

我试过的实验

  1. 在我使用“目标远程/dev/ ttyS0 ”的主机上,仍然是同样的问题
  2. 在上面提到的每个连接(1和2)中尝试了不同的电缆
  3. on Target 删除 UEFI shell 中 syslinux.cfg 文件中的编辑,启动映像并使用“echo g > /proc/sysrq-trigger”进入 kgdb
  4. 所有与 KGDB* 、 KGDB_SERIAL* 、 KGDB_USB* 相关的内核配置均已启用
  5. 所有可用的波特率

问题

  1. 如果我使用“kgdbwait kgdboc= ttyUSB0 , 115200”而不是“kgdbwait kgdboc= ttyS0 , 115200”,目标不会停止。当目标完全启动到登录提示时,我可以看到使用连接 1 时设备被识别为 ttyUSB0。但是,由于它没有停止,这是否意味着使用 USB 的 KGDB 不起作用?或者对于 USB 调试,我需要使用直接 USB-USB 线(连接 3)?
  2. syslinux.cfg 是否支持 USB 调试?因为有一个 SERIAL 标志,其值为“0, 115200”,其中 0 指的是 ttyS0。syslinux 文档没有任何关于 USB 类型设备的值。
  3. 使用连接 2,为什么我看到超时和数据包错误问题
  4. 偶尔使用连接 2,当我在主机上执行“目标远程 /dev/ttyUSB0”时,我注意到目标上有垃圾字符。所以发生了一些通信,所以尝试了不同的波特率仍然是同样的问题。这是否表明我的设置存在任何固有问题?
  5. 在许多在线论坛/文档中,当内核进入 kdb 提示符时,我没有看到“由于键盘输入而进入 kdb”。这不寻常吗?
0 投票
1 回答
342 浏览

debugging - 在调试会话中在远程 KGDB 和本地 DDB 之间切换

我想知道在调试远程内核时是否确实有办法在 gdb 和 ddb 之间切换。

我已经在 gdb(或者更确切地说是 kgdb)提示符下。从这里如何切换到被调试机器上的本地 ddb?

我的内核配置文件已经包含options BREAK_TO_DEBUGGER,并且我同时配置了 GDB 和 DDB:

根据开发人员手册,“每次键入 gdb 时,都会在远程 GDB 和本地 DDB 之间切换模式。为了立即强制执行下一个陷阱,只需键入 s(步骤)。您的托管 GDB 现在将获得对目标内核:”

所以,我确实尝试在 gdb 提示符下输入“gdb”(有趣的是:D),正如预期的那样,这是一个无法识别的命令。显然,这个命令应该在 ddb 提示符下输入。但我的问题是,如何从正在运行的机器中掉线到 ddb,其串行端口(尽管是虚拟的)远程连接到另一台机器的 KGDB?当远程 GDB 正在侦听并且我使用 强制恐慌sysctl debug.kdb.enter=1时,它确实会进入远程 KGDB。但是,当它不听时,系统就会冻结。

我想要的是在本地机器上输入 ddb 。使用它进行一些调试;对于最好使用 KGDB 完成的事情,请转到远程 KGDB,然后在我完成后切换回本地 DDB。

有没有办法做到这一点?

0 投票
0 回答
180 浏览

linux - 看不到“正在等待来自远程 gdb 的连接...”

我现在正在使用目标 pc 和主机 pc 配置 kgdb。这 2 台 PC 通过串行电缆连接。主机 PC 具有 USB 转串行电缆,即 ttyUSB0。目标PC有常规的串口,即ttyS0。

目标 PC 的 BIOS 具有串行控制台重定向选项,因此我将其关闭。

目标 PC 的内核使用以下选项构建。

1) CONFIG_HAVE_ARCH_KGDB = y

2) 配置_KGDB = y

3) CONFIG_KGDB_SERIAL_CONSOLE = y

以下是 grub.cfg 的行

linux /vmlinuz ro PROMPT_NO nmi_watchdog=1 kgdbwait kgdb8250=/dev/ttyS0,9600,kgdboc=/dev/ttyS0,9600 安静

我在这台目标 PC 上安装了 grub2。

我期待“等待来自远程 gdb 的连接...”消息。但是它确实可以正常启动而没有任何消息。

启动后,我检查了 /sys/module/kgdboc/parameters/kgdboc 并且它是空的。

0 投票
0 回答
60 浏览

linux-kernel - 在内核 3.18 上使用 kgdb

我在基于内核 3.18 的 android 设备上使用 64 位 ARMV8。

我正在尝试在串行端口上使用 kgdboc 来使用 kgdb。当我尝试启用 kgdboc 时,它会失败(错误 -19)。

echo ttyS1 > /sys/module/kgdboc/parameters/kgdboc

请帮我解决这个问题。

0 投票
1 回答
550 浏览

android - Android 引导加载程序调试

我正在尝试aboot在 android 上调试(应用程序引导加载程序),但我遇到了问题。我试图修补内核以支持KGDB串行调试,但驱动程序在启动后加载。我应该使用模拟器吗?如果是,如何?

0 投票
0 回答
266 浏览

linux - 在 Eclipse 中使用 UDP 端口进行 GDB 连接

我正在使用 KGDBoE 来调试 Linux 内核。KGDBoE 在某个 udp 端口​​启动服务器,我可以通过命令行使用 gdb 轻松连接到在嵌入式目标上运行的服务器。

现在我想使用 Eclipse IDE 使 gdb 调试更具交互性。问题是我在 Eclipse Attach Application Debug 启动中找不到使用 UDP 端口进行 gdb 连接的选项。

任何人都知道如何做到这一点。

让事情变得更简单,我想使用 UDP 连接而不是 TCP 来连接到在我的嵌入式板上运行的 GDBserver。使用 GDB CLI 非常简单,但我想使用 Eclipse。

谢谢