问题标签 [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-cdt - 远程调试时,如何访问目标上的源文件
我正在使用 CDT 远程调试应用程序。应用程序构造一个源片段并将其 JIT 到内存中。为了调试,它创建内存中的 ELF/DWARF 映像并将其注册到 GDB JIT 接口,并将与 DWARF 对应的源文件写入本地(目标)文件系统。
问题是调试器前端期望在主机文件系统上找到源文件。如果我在每个 JIT 事件之后手动将源文件从目标复制到主机,那么调试器可以单步执行源文件,但这是不切实际的。让 JIT 将文件上传到主机需要 JIT 知道它正在被调试(以及从哪里调试)。有没有办法让 gdbserver 或 CDT 在需要时从目标文件系统检索源文件?
我创建了传递给 GDB JIT 接口的 ELF/DWARF 图像,因此如果有帮助的话,我可以使用替代路径来描述源文件位置。
linux - 添加 GDB 符号后应用程序运行缓慢 - 副作用?
在发布模式下,我们有一个大小约为 20MB 的应用程序。此应用程序旨在在运行 Linux 2.6.12 的 MIPS 上运行。相同的调试版本约为 42 MB,优化关闭并添加了 -g 标志。额外的 22 MB 增加仅仅是因为 gdb 调试符号嵌入到应用程序中(没有添加日志或打印语句)。
与发布模式相比,现在调试构建的运行速度会比映像慢,如果是,为什么?
AFAIKstrip debug_image
也应该给我release_image
,但就我而言,我观察到以下情况。
为什么剥离的 debug_image 和 release_image 之间有区别?
将 gdb 符号嵌入到应用程序中是否还有其他副作用?
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"/>
在清单中有,所以我不应该进入这个案例。
以下是有关我为达到崩溃所遵循的步骤的更多详细信息:
- 使用 Eclipse 中的 Debug 启动我的应用程序
- 命中我在 System.loadLibrary 之后设置的断点,在该断点我的本地库被加载
- 在我的项目目录中,运行 ndk-gdb --force --verbose --start
- gdb 启动成功并已附加
- 在 gdb 中设置断点,在 Eclipse 中继续,然后在 gdb 中继续
- 碰撞!
请参阅下面的编辑控制台转储。
对于为什么会发生这种情况的任何反馈,我将不胜感激!
c - 调试自执行程序的 GDB MI 机制
我最近下载了 MI 库并执行/阅读了一些示例代码。在我看到的所有示例中,实现都是通过一个单独的程序,如下所示:
我的问题是我们如何在当前线程/程序本身中调用/实现 GDB,即附加这个自执行过程。
gdb - GDB 硬件断点不适用于远程调试
我使用 GDBServer 通过 ARM11 CPU 进行远程调试。软件断点运行良好,但我们使用“hbreak test.c:5”设置硬件断点,CPU 永远不会停止。
GDB 版本:7.3.1
目标CPU:ARM11
手术:
有人可以告诉我如何使用 GDB7.3.1 启用硬件调试吗?谢谢!
android - 找到 APK 的重复文件:lib/armeabi-v7a/gdbserver
我在android上有两个jni项目。我想使用其中之一来开发项目。其中一个项目调用另一个项目的方法。编译程序时我没有收到任何错误。但是,当我尝试运行该程序时,出现此错误:
你对这种情况有什么想法吗?
linux - 远程执行 Qt 应用程序导致 Linux 上的键盘输入丢失
我正在使用带有 Qt 插件的 Eclipse CDT。在没有 X 的 Debian 上工作,使用 Qt 的 QWS 服务器运行 GUI。
简单地说,我正在启动一个常规的 cpp 线程来执行逻辑工作,然后启动一个标准的 QApplication 执行。在本地目标机器上工作正常。但是当我从 Eclipse 的远程系统资源管理器服务远程启动程序或开始使用 gdbserver 进行调试时,键盘输入未正确处理,随机获取一些键盘事件,即它处于竞速状态。但是,鼠标输入工作得很好。
我知道这个问题还不够清楚,但我不知道如何专注于这个问题。我可以根据需要提供额外的反馈。
提前致谢。
c - 未加载远程 gdb 符号表
我正在尝试启动远程 gdb 会话。这是我到目前为止所做的。
但在此之后我无法插入任何断点,它说断点正在等待(未加载符号表)。但如果我继续,我的程序就会崩溃。
我在网上搜索,但我找不到任何关于此的内容。我将非常感谢您的帮助。谢谢。
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。都是一样的错误。有人有这个问题吗?
谢谢。
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 部分。
有谁知道它可能是什么?以及如何解决这个问题?是维齐奥吗?
先感谢您。