问题标签 [gdbserver]

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

eclipse - Eclipse上传程序到目标的gdbserver

我有一个小型嵌入式系统,我喜欢使用 Eclipse 编写/上传/调试程序。

只有一个问题,Eclipse 不能通过 gdb 将程序上传到 gdbserver。

支持:

  • 数据存储
  • SSH
  • FTP
  • 远程登录

但它们都需要我的嵌入式系统上的额外软件。

使用 gdb,您可以将程序上传到嵌入式系统的 gdbserver。

你知道是否有一些 Eclipse 支持吗?也许是插件?

(我在询问前两天搜索了,所以如果你能在这里帮助我,那就太好了。)

0 投票
2 回答
5181 浏览

linux-kernel - 远程 gdb 调试不会在断点处停止

我在调试修改后的 Linux-3.11.0 内核时遇到问题。为了调试代码,我使用:

  1. GDB 7.6
  2. QEMU 1.6.5
  3. Linux 内核 3.11.0

我的系统有 Intel(R) Core(TM) i7-2760QM CPU @ 2.40GHz 运行 Ubuntu 12.10

我使用“make menuconfig”创建的配置文件编译了修改后的内核。(在“内核黑客”类别中进行了修改)

这里引用了一些 .config 文件行(我认为相关):

我使用带有“-S”选项的 qemu 来引导我的内核,并使用 gdb 连接到 qemu 并恢复它的执行:

设置断点时,例如: break schedule我收到一条确认消息,例如:

所以直到这里一切似乎都很好!

问题是 gdb 和 qemu 不会在断点处停止!他们都只是继续运行......

我尝试按照某些地方的建议设置硬件断点,但收到以下消息:

这很奇怪,因为我设置了 CONFIG_HAVE_HW_BREAKPOINT 。

我也CONFIG_DEBUG_RODATA按照其他地方的建议取消设置,但仍然没有结果......

我试图按照这里的建议弄乱 .config 文件:qemu 内部的 gdbserver 不会在断点处停止,但我无法弄清楚工作 .config 文件和我的 .config 文件之间的相关差异......(也有差别很大!)

谁能帮帮我吗?

谢谢你!!

0 投票
1 回答
1388 浏览

c - gdbserver 中缺少符号名称,但 gdb 中没有

我想开始使用 gdbserver 进行远程调试,所以我用一个简单的测试程序在本地机器上测试了它的功能,该程序会生成如下所示的段错误:

segfault.c -- 编译为名为“test”的精灵

现在当我运行时:

#gdb test

(gdb)run

我得到:

但是,如果我像这样使用 gdb 服务器调试它:

#gdbserver :65535 test

#gdb test

(gdb)target remote 127.0.0.1:65535

(gdb)continue

它给了我调试信息:

它似乎为段错误提供了相同的函数地址,但是在使用远程调试器进行调试时省略了名称和行号。是否可以让远程调试器显示此信息,如果可以,如何显示?

我想我应该补充一点,该程序是使用“-g”调试标志使用 GCC 编译的

0 投票
1 回答
2231 浏览

gdb - 如何将 gdbserver 交叉编译到不同的平台?

我正在尝试编译 gdbserver 以在嵌入式 MIP 平台上进行远程调试。我有一个为该平台编译的交叉编译器 GCC、binutils 和 gdb。

我的配置命令就是这样

但是,它一直在使用我的系统编译器而不是交叉编译器构建,所以我得到了错误。如何配置它以使用交叉编译器构建,以便我可以在嵌入式平台上运行 gdbserver,然后从我的 PC 上调试它?

0 投票
1 回答
173 浏览

c - 如何从c字符串中提取地址

我正在编写我的程序,我需要从 c-string 中获取一个指针。例如,我有一个像“0x3b021e01”这样的字符串,作为输出,我想要一个合法的指针 void *ptr == 0x3021e101。

我尝试了这种方法:

但我得到分段错误。这里有什么问题?我该如何解决?

0 投票
1 回答
488 浏览

eclipse - Eclipse CDT 远程调试(“附加到应用程序”或“远程应用程序”)

由于工作站上的内存大小有限,我刚刚创建了一个 Amazon EC2。因此我需要弄清楚如何在这个远程实例上进行远程调试。

首先,我不太确定我是否理解调试配置选项卡中“附加到应用程序”或“远程应用程序”之间的区别。据我所知,第一个只是使用 Eclipse 作为前端 GUI 来连接远程 gdbserver。但我不知道第二个是什么意思。

现在我可以连接到我的 EC2 上的 gdbserver。但是,gdbserver 给了我一个警告信息

我已经在 Eclipse 的调试页面中定义了可执行文件和项目。有什么我错过的吗?

0 投票
1 回答
1623 浏览

c - gdb 信息行:...但不包含代码

我收到了一个奇怪的 gdb 错误info line

但另一方面,我可以成功列出代码:

而且 gdb 似乎清楚地知道源文件:

但是,另一方面,我无法让信息行说出合理的事情:(这是尝试从为第 1 帧列出的地址打印信息行,我非常确信我有源代码)

gdb:info line可以找到来源但无法细化行号的原因可能是什么?

注意:我确实有一个非常奇怪的构建系统/目标系统设置。我在构建系统上构建并将对象复制到目标系统。然后我在目标系统上运行 gdbserver。然后我在构建系统上运行 gdb 并使用该target remote命令连接到目标系统上的 gdbserver。

希望,瑞奇

0 投票
7 回答
30769 浏览

linux - 如何终止 gdbserver?

我正在尝试使用 gdbserver 进行调试。在我终止主机上的 gdb 客户端后,我看到 gdbserver 仍在监听:

我试图用我在任何地方找到的所有东西都没有运气退出 gdbserver:quit,exit,q, monitor exit,Esc,Cnt+c... 没有什么能杀死它。此外,当我打开另一个终端并寻找运行 gdbserver 的进程(使用命令 ps,top)时,我在那里找不到它......我的问题是 - 如何终止 gdbserver ?

0 投票
0 回答
308 浏览

linux - 通过eclipse连接gdbserver时的断点

我正在尝试通过手动创建 gdbserver 并使用远程调试调试配置通过 eclipse cdt 连接到它来调试链接到一些不是标准系统库的标准库(即,它使用不同的 sysroot)的应用程序。虽然我可以连接到服务器并将程序运行到最后(我看到程序标准输出),但如果我在连接错误消息时尝试停止执行,它会失败:

但是,我已经设法让它识别并停止在程序启动后设置的断点处。但是,如果我在启动时设置了任何设置,那么对于每个断点,我都会收到与上述错误类似的错误。

如果我在命令行上使用 gdb 连接到它,则使用断点没有问题。我在这里想念什么?

0 投票
1 回答
2100 浏览

linux - 通过 ssh 启动的 c++ 进程的 gdb 远程调试:如何重定向标准输入

首先,一些背景。remote_host我通过在using上启动进程来运行程序ssh

程序myprogram读取附加到本地文件的标准输入input.txt

现在,我需要在 gdb 下远程调试这个程序。如果没有标准输入重定向,即< input.txt,我可以使用 gdb's 来执行此操作target remote,如下所示(在 gdb 提示符下):

但是,在上面的示例中,我不知道如何将myprogram's stdin 附加到input.txt.

有什么可以解决问题的吗?