问题标签 [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.
eclipse - Eclipse上传程序到目标的gdbserver
我有一个小型嵌入式系统,我喜欢使用 Eclipse 编写/上传/调试程序。
只有一个问题,Eclipse 不能通过 gdb 将程序上传到 gdbserver。
支持:
- 数据存储
- SSH
- FTP
- 远程登录
但它们都需要我的嵌入式系统上的额外软件。
使用 gdb,您可以将程序上传到嵌入式系统的 gdbserver。
你知道是否有一些 Eclipse 支持吗?也许是插件?
(我在询问前两天搜索了,所以如果你能在这里帮助我,那就太好了。)
linux-kernel - 远程 gdb 调试不会在断点处停止
我在调试修改后的 Linux-3.11.0 内核时遇到问题。为了调试代码,我使用:
- GDB 7.6
- QEMU 1.6.5
- 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 文件之间的相关差异......(也有差别很大!)
谁能帮帮我吗?
谢谢你!!
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 编译的
gdb - 如何将 gdbserver 交叉编译到不同的平台?
我正在尝试编译 gdbserver 以在嵌入式 MIP 平台上进行远程调试。我有一个为该平台编译的交叉编译器 GCC、binutils 和 gdb。
我的配置命令就是这样
但是,它一直在使用我的系统编译器而不是交叉编译器构建,所以我得到了错误。如何配置它以使用交叉编译器构建,以便我可以在嵌入式平台上运行 gdbserver,然后从我的 PC 上调试它?
c - 如何从c字符串中提取地址
我正在编写我的程序,我需要从 c-string 中获取一个指针。例如,我有一个像“0x3b021e01”这样的字符串,作为输出,我想要一个合法的指针 void *ptr == 0x3021e101。
我尝试了这种方法:
但我得到分段错误。这里有什么问题?我该如何解决?
eclipse - Eclipse CDT 远程调试(“附加到应用程序”或“远程应用程序”)
由于工作站上的内存大小有限,我刚刚创建了一个 Amazon EC2。因此我需要弄清楚如何在这个远程实例上进行远程调试。
首先,我不太确定我是否理解调试配置选项卡中“附加到应用程序”或“远程应用程序”之间的区别。据我所知,第一个只是使用 Eclipse 作为前端 GUI 来连接远程 gdbserver。但我不知道第二个是什么意思。
现在我可以连接到我的 EC2 上的 gdbserver。但是,gdbserver 给了我一个警告信息
我已经在 Eclipse 的调试页面中定义了可执行文件和项目。有什么我错过的吗?
c - gdb 信息行:...但不包含代码
我收到了一个奇怪的 gdb 错误info line
。
但另一方面,我可以成功列出代码:
而且 gdb 似乎清楚地知道源文件:
但是,另一方面,我无法让信息行说出合理的事情:(这是尝试从为第 1 帧列出的地址打印信息行,我非常确信我有源代码)
gdb:info line
可以找到来源但无法细化行号的原因可能是什么?
注意:我确实有一个非常奇怪的构建系统/目标系统设置。我在构建系统上构建并将对象复制到目标系统。然后我在目标系统上运行 gdbserver。然后我在构建系统上运行 gdb 并使用该target remote
命令连接到目标系统上的 gdbserver。
希望,瑞奇
linux - 如何终止 gdbserver?
我正在尝试使用 gdbserver 进行调试。在我终止主机上的 gdb 客户端后,我看到 gdbserver 仍在监听:
我试图用我在任何地方找到的所有东西都没有运气退出 gdbserver:quit,exit,q, monitor exit,Esc,Cnt+c... 没有什么能杀死它。此外,当我打开另一个终端并寻找运行 gdbserver 的进程(使用命令 ps,top)时,我在那里找不到它......我的问题是 - 如何终止 gdbserver ?
linux - 通过eclipse连接gdbserver时的断点
我正在尝试通过手动创建 gdbserver 并使用远程调试调试配置通过 eclipse cdt 连接到它来调试链接到一些不是标准系统库的标准库(即,它使用不同的 sysroot)的应用程序。虽然我可以连接到服务器并将程序运行到最后(我看到程序标准输出),但如果我在连接错误消息时尝试停止执行,它会失败:
但是,我已经设法让它识别并停止在程序启动后设置的断点处。但是,如果我在启动时设置了任何设置,那么对于每个断点,我都会收到与上述错误类似的错误。
如果我在命令行上使用 gdb 连接到它,则使用断点没有问题。我在这里想念什么?
linux - 通过 ssh 启动的 c++ 进程的 gdb 远程调试:如何重定向标准输入
首先,一些背景。remote_host
我通过在using上启动进程来运行程序ssh
:
程序myprogram
读取附加到本地文件的标准输入input.txt
。
现在,我需要在 gdb 下远程调试这个程序。如果没有标准输入重定向,即< input.txt
,我可以使用 gdb's 来执行此操作target remote
,如下所示(在 gdb 提示符下):
但是,在上面的示例中,我不知道如何将myprogram
's stdin 附加到input.txt
.
有什么可以解决问题的吗?