制作网站教学,周口网站制作哪家好,wordpress 编辑图片无法显示,程序员做的简单的网站Android NDK开发详解之调试和性能分析的ndk-gdb 要求用法选项 NDK 包含一个名为 ndk-gdb 的 Shell 脚本#xff0c;可以启动命令行原生调试会话。偏好使用 GUI 的用户则应阅读在 Android Studio 中调试这篇文档。
要求
要运行命令行原生调试#xff0c;必须满足以下要求可以启动命令行原生调试会话。偏好使用 GUI 的用户则应阅读在 Android Studio 中调试这篇文档。
要求
要运行命令行原生调试必须满足以下要求
使用 ndk-build 脚本构建您的应用。ndk-gdb 脚本不支持使用旧的 make APP 方法进行构建。 在 AndroidManifest.xml 文件中添加可将 android:debuggable 属性设为 true 的 元素从而在该文件中启用应用调试。 构建可在 Android 2.2Android API 级别 8或更高版本上运行的应用。 在搭载 Android 2.2 或更高版本的设备或模拟器上进行调试。就调试而言在 AndroidManifest.xml 文件中声明哪个目标 API 级别并不重要。 在 Unix shell 中开发您的应用。在 Windows 上请使用 Cygwin 或实验性 ndk-gdb-py Python 实现。 使用 GNU Make 3.81 或更高版本。
用法
要调用 ndk-gdb 脚本请切换到应用目录或该目录下的任何目录。例如
cd $PROJECT
$NDK/ndk-gdb其中 P R O J E C T 指向您项目的根目录 PROJECT 指向您项目的根目录 PROJECT指向您项目的根目录NDK 指向 NDK 安装路径。
调用 ndk-gdb 时它会配置此会话以查找您的源文件以及所生成的原生库的符号/调试版本。成功附加到您的应用进程后ndk-gdb 会输出一长串错误消息表示无法找到各种系统库。这很正常因为您的主机并未在目标设备上包含这些库的符号/调试版本。您可以放心地忽略这些消息。
接下来ndk-gdb 会显示一个正常的 GDB 提示。
您可能熟悉与 GNU GDB 的互动方式与 ndk-gdb 的互动方式与之相同。例如您可以使用 b 设置断点并使用 c表示“continue”继续执行。有关完整的命令列表请参阅 GDB 手册。如果您更喜欢使用 LLDB 调试程序请在调用 ndk-gdb 脚本时使用 --lldb 选项。
请注意如果您退出 GDB 提示那么您正在调试的应用进程将停止。此行为是一种 gdb 限制。
ndk-gdb 可处理许多错误情况并会在发现问题时显示可提供有用信息的错误消息。这些检查包括确保满足以下条件
确保 ADB 位于您的路径中。 确保您的应用已在其清单中声明为可调试。 确保设备上安装的具有相同软件包名称的应用同样可调试。 默认情况下ndk-gdb 会搜索已在运行的应用进程如果没有搜索到则会显示相应的错误。不过您可以使用 --start 或 --launch 选项在调试会话前自动启动您的 Activity。有关详情请参阅选项。
选项
要查看完整的选项列表请在命令行中输入 ndk-gdb --help。表 1 显示了许多比较常用的选项及其简要说明。
表 1. 常用 ndk-gdb 选项及其说明。
在指定了此选项的情况下启动 ndk-gdb将会启动应用清单中列出的第一个可启动 Activity。使用 --launch 可启动下一个可启动的 Activity。要转储可启动 Activity 的列表请从命令行运行 --launch-list。 注意此表中的最后三个选项仅适用于 ndk-gdb 的 Python 版本。
线程支持 如果运行应用的平台版本低于 Android 2.3API 级别 9ndk-gdb 就无法正确调试原生线程。调试程序只能调试主线程abd 会完全忽略其他线程的执行。
如果您在非主线程上执行的函数上放置一个断点则程序将退出而 GDB 将显示以下消息
Program terminated with signal SIGTRAP, Trace/breakpoint trap. The program no longer exists. 本页面上的内容和代码示例受内容许可部分所述许可的限制。Java 和 OpenJDK 是 Oracle 和/或其关联公司的注册商标。
最后更新时间 (UTC)2021-01-05。