问题标签 [ndk-gdb]

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 投票
0 回答
1274 浏览

android - android package is not debuggable error Android Studio NDK

我知道我有一个可调试的 APK,我正在手机上运行它,基于以下输出显示文件被推送到我的手机:

但是当我运行 GDB 时,它抱怨 apk 不可调试:

我认为这是因为我从项目的 /main 目录调用 gdb,这是 GDB 似乎开始运行的唯一地方。并且它不具有可调试文件的可见性,该文件位于文件结构的不同分支之外。请看下面:

所以问题是我如何运行 GDB,它应该从项目根目录运行并以某种方式告诉它使用可调试文件?

0 投票
2 回答
1980 浏览

android - ndk-gdb 找不到 gdb.setup

我正在尝试使用 ndk-gdb 来调试我的原生 android 项目。当我运行命令 ndk-gdb 时出现错误

解释

  • 运行 MacOSX,ndk r10e;使用 ndk 示例 San Angeles
  • 按照此处的步骤设置本机调试https://developer.android.com/ndk/guides/ndk-gdb.html
  • 基本上我设置了 android:debuggable="true", APP_OPTIM := debug 并使用 ndk-build NDK_DEBUG=1 构建了本机(这 3 个设置可能是多余的,但以防万一)
  • 使用ant debug、adb install安装;Ran应用程序和应用程序运行良好
  • 运行 ndk-gdb --verbose 产生

    ndk-gdb --verbose

    Android NDK安装路径:

    使用默认的 adb 命令:

    找到 ADB 版本:Android Debug Bridge 版本 1.0.32

    使用亚行标志:

    使用 JDB 命令:

    使用自动检测的项目路径:.

    找到包名:com.example.SanAngeles

    应用程序针对的 ABI:arm64-v8a armeabi armeabi-v7a armeabi-v7a mips mips64 x86 x86_64

    设备 API 级别:19

    设备 CPU ABI:x86

    兼容设备 ABI:

    使用 gdb 设置初始化:

    使用工具链前缀:

    使用应用程序输出目录:./obj/local/armeabi

    找到可调试标志:true

    错误:

    /li>
0 投票
0 回答
723 浏览

android - Android ndk-gdb 本机代码调试中的“无法插入断点。无法在地址访问内存”错误

在过去的 4 天里,我一直在尝试使用 ndk-gdb 在 Android 应用程序中调试本机 C++ 代码。但我不断收到此错误。无法插入断点

我在 wordpress 网站的 mhandroid 中使用-eclipse-for-android-cc-debugging 遵循了本教程(请注意,我不能提供超过 2 个链接。)

在 Eclipse 中设置断点后,我将 Eclipse 作为调试应用程序启动。它在java代码中遇到断点。然后我在 Cygwin 中运行 ndk-gdb-eclipse(按照教程)。在 ndk-gdb 中一切运行良好。请看下图, ndk-gdb在cygwin中运行

然后我在 Eclipse 中作为 C/C++ 应用程序启动调试,我收到错误“无法插入断点”

我已经检查了这里的所有帖子,但没有解决此错误的方法。

任何人都可以对这个问题有所了解吗?提前致谢。

0 投票
2 回答
587 浏览

android-ndk - 用于 NDK r11 的 ndk-gdb 工具。我在哪里可以找到它们?

刚刚发布的NDK r11。
发行说明状态:Removed ndk-gdb in favor of ndk-gdb.py

但是,r11 NDK 包中的任何地方似乎都没有任何 gdb 工具。我错过了什么。现在这是一个必须以某种方式绑定的单独工具吗?这是 NDK 众神的粗心疏忽吗?我在旧的 ndk r10e 上达到了顶峰,确实有 ndk-gdb 和 ndk-gdb.py,所以我知道 python 脚本至少存在在那里。这些项目我可以从我的 R10e 版本移植过来吗?我知道 ndk-gdb 脚本总是在我需要一些定期调整的情况下打破。我从来没有使用过 python 脚本,所以我想我的问题是双重的。

我在哪里获取/安装/配置ndk-gdb.py以及如何使用它。它与旧的 ndk-gdb shell 脚本有很大不同吗?

非常感谢任何见解或帮助。

0 投票
2 回答
707 浏览

android - NDK r11b:使用 ndk-gdb.py 调试器需要帮助

平台是 Mac,使用NDK r11b,我的应用程序由大约 8 个 c/c++ so 文件组成。过去我通过 NDK r10e 使用过 ndk-gdb (sh) 脚本。shell 脚本现在已被弃用,ndk-gdb.py现在是唯一的选择。问题是我无法让它工作。我像往常一样从我的项目文件夹中运行它。我尝试了多个命令行选项,但没有成功。感觉好像没有找到我的源文件。它使用"Waiting for Debugger". 我到了(gdb) prompt。我尝试添加断点,但在可靠的中断点处没有中断。我需要一些关于如何为 ndk-gdb 配置和使用 python 版本的指示。谷歌已经删除了文档文件,我在任何地方都找不到任何足以作为指南的东西。

我尝试过的一些命令行。

ndk-gdb --launch --verbose 这会启动应用程序,但会阻止等待调试器

ndk-gdb将附加到正在运行的进程。ctr-c 将暂停执行,但回溯会bt列出损坏的堆栈。

ndk-gdb --launch -t -v -p $ProjectDir 我得到了一个我不熟悉的新界面,上面写着[ No Source Available ]

任何帮助或见解将不胜感激

0 投票
1 回答
347 浏览

android-ndk - 最新的ndk-gdb无法连接到我的设备

我只是在使用 ndk-gdb 调试我的本机应用程序时遇到了麻烦。这是我的环境:

  • OS X El 队长 10.11.5
  • NDK 版本 r12
  • SDK 版本 24
  • 构建工具版本 24.0.0
  • 设备 Nexus 6P 与 Android N (NPD35K)

问题:

当我要启动ndk-gdb它总是失败并显示消息

但是,gdbserver自从我的应用程序暂停以来,该实例已经启动,我可以看到gdbserverinadb shell ps列表。

我试过的:

  1. gdbserver我没有通过ndk-gdb脚本 启动,而是gdbserver手动启动adb run-as并确保gdbserver 继续运行
  2. 通过adb forward :5039 localfilesystem:/the_gdb_socket_path

  3. 用于netstat -na | grep 5309确保端口正在侦听

  4. 用于telnet localhost 5039测试套接字但得到错误Connection closed by foreign host

有没有更好的方法来确定导致远程 gdb 连接失败的问题所在?

0 投票
0 回答
266 浏览

android - 包含库模块中的 Android NDK 调试

我目前正在开发一个使用 NDK 的库的 Android 应用程序。库和应用程序在单独的存储库中维护,并作为单独的项目工作。该库是使用 Gradle 和 ndk-build 脚本自行编译的。然后将 aar 输出和 .so 文件包含在主应用程序中。

我的问题是:
有没有办法在主应用程序中运行时使用 ndk-gdb(或其他替代方法)来调试库?

我有这两个项目的源代码,如果需要,我可以将这些项目与 ndk-gdb 结合使用,但这非常混乱,需要大量不受版本控制的额外工作。

0 投票
0 回答
14 浏览

android-ndk - 我可以运行连接到两个设备的 ndk-gdb 吗?

我正在尝试运行连接到两个设备的两个 ndk-gdb 实例。

但是基于此页面,我找不到这样做的方法...

https://developer.android.com/ndk/guides/ndk-gdb.html

甚至可以将两个单独的设备连接到两个通过 adb 运行的 ndk-gdb 实例吗?

0 投票
1 回答
176 浏览

android - Android Studio 生成核心转储 CMake

我正在尝试为我的 android studio 应用程序生成核心转储。它是用 Java 编写的,但是由于崩溃发生在我的本机库中,我正在尝试生成一个核心转储。

我正在使用 cmake 来配置本机库,而不是 Android.mk。

因此,当我尝试运行时,ndk-gdb我得到:

当我在我的应用程序中使用 CMake 时,如何获取核心转储?我该怎么跑gdb呢?

0 投票
0 回答
829 浏览

android - ndk-gdb 中的“无法从 Android.mk 检索应用程序 ABI”错误

我正在尝试使用 ndk-gdb 工具调试本机 android 应用程序。当我执行 ndk-gdb 时,出现以下错误。

“/home/amila/Android/Ndk/android-ndk-r20/build/core/add-application.mk:88: *** Android NDK: Aborting... . 停止。错误: 无法从 Android 检索应用程序 ABI .mk。”

我已经使用ndk-build命令构建了本机部分,并且该应用程序正在 Android Studio 中构建,没有任何问题。

jni 目录:/ndktest/jni(其中 ndktest 是应用名称)

我在ndk-gdbAndroidManifest.xml 所在的目录 (/ndktest/app/src/main) 中运行了该命令。

我还尝试添加APP_ABI := arm64-v8a到 Android.mk 中,但没有任何改变。

jni/Android.mk

jni/应用程序.mk

ndk-gdb运行该工具时应该没有错误。