问题标签 [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 回答
253 浏览

eclipse-cdt - 远程调试时,如何访问目标上的源文件

我正在使用 CDT 远程调试应用程序。应用程序构造一个源片段并将其 JIT 到内存中。为了调试,它创建内存中的 ELF/DWARF 映像并将其注册到 GDB JIT 接口,并将与 DWARF 对应的源文件写入本地(目标)文件系统。

问题是调试器前端期望在主机文件系统上找到源文件。如果我在每个 JIT 事件之后手动将源文件从目标复制到主机,那么调试器可以单步执行源文件,但这是不切实际的。让 JIT 将文件上传到主机需要 JIT 知道它正在被调试(以及从哪里调试)。有没有办法让 gdbserver 或 CDT 在需要时从目标文件系统检索源文件?

我创建了传递给 GDB JIT 接口的 ELF/DWARF 图像,因此如果有帮助的话,我可以使用替代路径来描述源文件位置。

0 投票
1 回答
204 浏览

linux - 添加 GDB 符号后应用程序运行缓慢 - 副作用?

在发布模式下,我们有一个大小约为 20MB 的应用程序。此应用程序旨在在运行 Linux 2.6.12 的 MIPS 上运行。相同的调试版本约为 42 MB,优化关闭并添加了 -g 标志。额外的 22 MB 增加仅仅是因为 gdb 调试符号嵌入到应用程序中(没有添加日志或打印语句)。

与发布模式相比,现在调试构建的运行速度会比映像慢,如果是,为什么?

AFAIKstrip debug_image也应该给我release_image,但就我而言,我观察到以下情况。

为什么剥离的 debug_image 和 release_image 之间有区别?

将 gdb 符号嵌入到应用程序中是否还有其他副作用?

0 投票
1 回答
2126 浏览

android - 为什么当我遇到断点时我的 NDK 应用程序会崩溃?- 或 - 为什么我会收到“此 Android 平台不支持线程调试!” 在姜饼上?

我正在尝试使用 NDK r6b 在 2.3.6 设备上调试多线程 Android 应用程序。我也尝试过使用 NDK r8 得到相同的结果。每当我遇到断点时,应用程序就会崩溃。我似乎遇到了“线程支持”部分的 NDK r5b 文档中描述的案例:

我得到了提到的确切错误。我相信我正在处理这种情况,因为我Thread debugging is unsupported on this Android platform!在运行 ndk-gdb 时看到了。正如我所提到的,我在 Gingerbread 设备上,并且我<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="9"/>在清单中有,所以我不应该进入这个案例。

以下是有关我为达到崩溃所遵循的步骤的更多详细信息:

  1. 使用 Eclipse 中的 Debug 启动我的应用程序
  2. 命中我在 System.loadLibrary 之后设置的断点,在该断点我的本地库被加载
  3. 在我的项目目录中,运行 ndk-gdb --force --verbose --start
  4. gdb 启动成功并已附加
  5. 在 gdb 中设置断点,在 Eclipse 中继续,然后在 gdb 中继续
  6. 碰撞!

请参阅下面的编辑控制台转储。

对于为什么会发生这种情况的任何反馈,我将不胜感激!

0 投票
1 回答
292 浏览

c - 调试自执行程序的 GDB MI 机制

我最近下载了 MI 库并执行/阅读了一些示例代码。在我看到的所有示例中,实现都是通过一个单独的程序,如下所示:

我的问题是我们如何在当前线程/程序本身中调用/实现 GDB,即附加这个自执行过程。

0 投票
1 回答
2601 浏览

gdb - GDB 硬件断点不适用于远程调试

我使用 GDBServer 通过 ARM11 CPU 进行远程调试。软件断点运行良好,但我们使用“hbreak test.c:5”设置硬件断点,CPU 永远不会停止。

GDB 版本:7.3.1

目标CPU:ARM11

手术:

有人可以告诉我如何使用 GDB7.3.1 启用硬件调试吗?谢谢!

0 投票
3 回答
4126 浏览

android - 找到 APK 的重复文件:lib/armeabi-v7a/gdbserver

我在android上有两个jni项目。我想使用其中之一来开发项目。其中一个项目调用另一个项目的方法。编译程序时我没有收到任何错误。但是,当我尝试运行该程序时,出现此错误:

你对这种情况有什么想法吗?

0 投票
1 回答
373 浏览

linux - 远程执行 Qt 应用程序导致 Linux 上的键盘输入丢失

我正在使用带有 Qt 插件的 Eclipse CDT。在没有 X 的 Debian 上工作,使用 Qt 的 QWS 服务器运行 GUI。

简单地说,我正在启动一个常规的 cpp 线程来执行逻辑工作,然后启动一个标准的 QApplication 执行。在本地目标机器上工作正常。但是当我从 Eclipse 的远程系统资源管理器服务远程启动程序或开始使用 gdbserver 进行调试时,键盘输入未正确处理,随机获取一些键盘事件,即它处于竞速状态。但是,鼠标输入工作得很好。

我知道这个问题还不够清楚,但我不知道如何专注于这个问题。我可以根据需要提供额外的反馈。

提前致谢。

0 投票
0 回答
164 浏览

c - 未加载远程 gdb 符号表

我正在尝试启动远程 gdb 会话。这是我到目前为止所做的。

但在此之后我无法插入任何断点,它说断点正在等待(未加载符号表)。但如果我继续,我的程序就会崩溃。

我在网上搜索,但我找不到任何关于此的内容。我将非常感谢您的帮助。谢谢。

0 投票
0 回答
773 浏览

android - Android NDK gdb (ndk-gdb) exit with error readchar: Got EOF when use "info functions"

我遇到了 ndk-gdb 非常奇怪的问题。

当我尝试使用以下命令时:break < fun_name >, break < file_name:line >, info functions 我得到错误和 gdb 退出:

Tha poroblem 我看到这个 gdb 没有看到我的 src 文件,但是为什么呢?

“info sharedlib”显示我加载的库以及它们所有的调试符号。

"show dir" 显示所有包含 src 文件 (.c, .cpp) 的有效目录。

当应用程序崩溃 gdb 停止时,显示堆栈跟踪并对“c”命令做出反应,但不显示任何 src 文件。

当程序在 Java 制动点(在 Eclipce 中)停止时,我在 cygwin shell 中运行以下命令(具有管理员权限):

$NDK/ndk-gdb --verbose --force --adb=/cygdrive/c/Programs/android-sdk/platform-tools/adb.exe

我在设备上调试。尝试使用 android-ndk-r7-crystax-5.beta2 和 android-ndk-r8b。都是一样的错误。有人有这个问题吗?

谢谢。

0 投票
1 回答
1712 浏览

android - GDBSERVER 在启动时退出

我正在尝试在 Android (Java/C/C++) 上调试混合代码。我的目标设备是 Vizio 1008。代码在模拟器上运行,我可以使用 GDB 从 Eclipse 调试它。但是,我无法在真实设备上执行此操作。

经过几天的努力,我定位了问题:

当 GDBSERVER 在设备上启动(成功)时,它会立即退出并显示消息:“请求未知寄存器 d0”。因此,不可能进行调试会话。我还尝试了 ARM 的 DS-5 调试器。GDBSERVER 保持连接状态,但在远程调试器尝试连接时退出。我尝试了 GDBSERVER 调试输出,但它没有提供任何有用的信息。

更奇怪的是,我尝试了任何我能得到的 GDBSERVER 版本,它们的行为都是这样的。但是,我从 Google NDK 的旧版本之一(3 或 4 个版本)中找到了 GDBSERVER。这个版本可以工作!!!但是,调试器(在主机上)很快就死了(分段错误),即使我知道程序没问题。

我查看了 GDBSERVER 源代码,看起来,这个错误与 GDBSERVER 检查硬件时的启动顺序有关。可能,它与浮点协处理器有关,但我不确定,因为此错误消息非常通用。

如果重要的话,我正在使用 Google NDK 在 Windows 上进行开发。代码是 99% 的 C/C++,带有 Java shell 和一些用 Java 实现的函数(线程 HTTP 调用)。同样,应用程序可以在设备上运行,并且可以在模拟器上进行调试(Java 和 C/C++)。我还可以在设备上调试 Java 部分。

有谁知道它可能是什么?以及如何解决这个问题?是维齐奥吗?

先感谢您。