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

c - BusyBox 上没有调试符号交叉编译 ARM

我正在尝试调试在 ARM926EJ-S rev 5 (v5l) 上运行的 C 程序。该软件与标准交叉编译(并静态链接)。arm-linux-gnueabi 编译器(通过突触安装)。我运行Ubuntu 13.04 64bit。设备上有一个Busybox v1.18.2。我成功编译了gdbserver(使用host=arm-linux-gnueabi)和gdb(使用target=arm-linux-gnueabi),并且可以通过本地运行的gdb在嵌入式设备上启动我的程序......我现在的问题是,我没有正确的回溯输出。

gdb的消息:

我尝试使用-g、-g3 -gdwarf-2、-ggdb、-ggdb3编译软件,没有任何区别。

有人知道我在这里缺少什么吗?

这可能是 BusyBox 的问题,还是我的主机系统上需要额外的库?

我还尝试了execinfo.h中的函数backtrace_symbols,输出几乎相同......

提前感谢您的任何回复。

0 投票
1 回答
1680 浏览

c++ - Remote debugging problems

I am trying to remote debug applications on a server in my local network.

Server:

Workstation:

I compiled a "Hello World" app on the workstation and it runs without errors on both workstation and server.

This works on both server and workstation

Shell 1:

Shell 2:

This does not work

Server:

Workstation:

GDB output

gdbserver tells me that there is an incomming connection, but it doesn't write my hello world message.

Any ideas?

P.S. I allready posted this question on linuxquestions.org a while ago. I don't think that was the right forum, so I am trying my luck here.

0 投票
2 回答
3117 浏览

c++ - 为 MSYS 上 gdbserver 下的程序提供参数

我需要异步调试程序,因为它停止了,并且Ctrl+ Ckilled gdb,而不是中断程序(这是在 MinGW/MSYS 上)。

有人暗示gdb在异步模式下在 Windows 上不起作用,实际上它没有(带有Asynchronous execution not supported on this target.消息),但那gdbserver会。

所以我尝试:

0根据联机帮助页的说明,提供作为参数。)

然后在另一个终端:

虽然原来的现在看起来像:

也就是说,我的程序认为它没有参数。

手册页错了吗?

0 投票
1 回答
1236 浏览

android - Android GDB 未加载 c++ 共享库

我一直在尝试调试我用 c/c++ 编写的共享库,但我无法使用 eclipse 对其进行调试。当我设置断点时从不命中并且info sharedlibrary在 gdb 中执行后,我得到他的关注,确认该库不存在(称为 libtest-java.so)

有什么方法可以手动加载这个库吗?在 make 文件中,我使用以下内容:

包括 $(CLEAR_VARS)

非常感谢您的时间!

0 投票
1 回答
567 浏览

c - 如何使用 OpenOCD 在 GDB 中获取信息注册工作

我是 OpenOCD 和 GDB 的新手,请多多包涵。我在与系统对话的 Screen1 的服务器中运行我的 OpenOCD。在屏幕 1 中,我正在等待连接到来:

在 Screen2 中,我开始gdb然后

我进入 Screen1(openocd):

这很好用,然后我收到一堆错误消息,例如:

我为什么要得到这个。我所做的只是连接。我要做的就是info reg在 gdb 提示符下键入并获取寄存器值。

问题1:您如何可靠地停止系统?命令是什么。如果我继续做

大多数时候 info reg 都是零,但偶尔我会得到有效值。什么可以保证停止处理器并读取寄存器。

0 投票
1 回答
303 浏览

linux - 在用于 C/C++ 的 Eclipse IDE 中进行远程调试

我通过指定端口号和主机名,在Eclipse中使用远程调试应用程序模式在目标(嵌入式 pc)上运行我的代码。

我在目标上使用gdbserver,在客户端上使用手动远程调试应用程序。

当我在目标上调试我的代码时,它会进入调试模式。之后,调试模式下没有连接选项。只有启动、重新连接等。

为什么调试模式下没有连接选项?

0 投票
1 回答
1983 浏览

assembly - 使用 gdb 在 qemu 中调试时错误的内存位置

我正在用汇编程序编写一个小内核。我在 QEMU 中运行它并且遇到了一些问题。现在我想用 dbg 调试内核。所以我像这样组装它:

然后我在 QEMU 中运行它:

然后我连接 gdb:

我的内核中有一个标签welcome,它指向一个字符串。在测试时,我尝试查看该字符串,结果如下:

标签定义如下:

所以你可以看到,gdb 假装 Welcome 以空字节开头,但根据定义它不是。但是内核正确使用了标签,因此我的代码似乎没有问题。检查内存的其他部分与加载的内核完全不匹配。

有谁知道为什么虚拟机的内存与加载的内核不匹配,而机器仍然正常运行?

0 投票
1 回答
4883 浏览

c - GDB 不从库中加载符号

我尝试使用 GBD 在 Android 上调试一些本机代码。该代码不是我创建的,也不在 Android 项目中,所以我不能使用 ndk-gdb 工具。我在 android 机器上使用 gdbserver,并使用普通的 GDB 程序从我的 mac 连接到它。我尝试加载所有库(根据 objdump 工具应该有符号),但 gdb 告诉我它不加载符号(根据 gdb 命令“info sharedLibrary”)。这些是我采取的步骤:

  1. 在 Android 机器上启动 gdbserver
  2. 使用二进制的调试版本启动 GDB

    gdb symbols/system/bin/mediaserver

以下命令在 gdb 本身中执行

  1. 告诉 gdb 在哪里寻找带有符号的库

    (gdb) set solib-search-path symbols/system/lib

  2. 告诉 gdb 在哪里可以找到源文件

    (gdb) directory /sources

  3. 连接到远程目标(Android 机器)

    (gdb) target remote 192.168.1.10:5039

GDB 成功连接到正在运行的二进制文件,我可以暂停并继续执行。但它没有显示任何调试信息,如函数名称或行号。它只显示地址。当我检查使用的库的状态时,我看到 gdb 认为,它们没有任何符号:

  1. gdb 中的命令:

(gdb) info sharedLibrary From To Syms Read Shared Object Library 0x00003700 0x0000ff0c Yes /symbols/system/bin/linker No libc.so No libstdc++.so No libm.so No liblog.so No libcutils.so No libspeexresampler.so No libaudioutils.so No libgccdemangle.so No libamplayer.so

现在以最后一个库为例。当我检查文件命令(不在 gdb 中)时,它告诉我它是一个未剥离的库(该库位于“symbols/system/lib”文件夹中)。

file libamplayer.so

输出:

libamplayer.so: ELF 32-bit LSB shared object, ARM, version 1 (SYSV), dynamically linked, not stripped

objdump 命令在其中显示了很多符号(我没有显示输出,因为它很长)。那么为什么 gdb 不能识别这个库中的符号呢?我想,至少行号和函数名存在于未剥离版本的库中。还是我错了?如果有人能给我更多的见解,那就太好了。

谢谢!

系统信息:

GDB 版本:Mac OS X Mavericks 上的 7.3.1-gg2

0 投票
1 回答
1507 浏览

gdb - 继续后如何返回gdb提示并且gdb没有命中断点

(gdb) 目标远程机器-XYZ:5001
(gdb) b some_function_name
(gdb) c
继续。

现在这里远程进程还没有命中函数,gdb 仍处于继续阶段。但是如果我必须添加更多断点或者我必须分离我该怎么做,如果不返回提示就无法完成。

0 投票
0 回答
60 浏览

c++ - 仅在遇到断点时如何与 gdbserver 连接?

使用 gdb,我将编写一个 .gdbinit 文件,其中包含以下内容:

这将使 gdb 运行程序并在这些断点处停止。

我怎样才能对 gdbserver 做同样的事情?例如:只有在断点被命中时才停止接受连接?