gpt4 book ai didi

android - 调试 Android NDK 原生应用

转载 作者:IT老高 更新时间:2023-10-28 23:32:59 26 4
gpt4 key购买 nike

我正在尝试调试和单步调试一个出现段错误的 Android 应用程序。我试过 ndk-gdb,但运气不佳。我也提到了Android NDK Debugging无法调试我的应用程序。

当我尝试 ndk-gdb --start 时,我得到:

$ ndk-gdb --start --verbose
Android NDK installation path: /opt/android-ndk-r7
Using default adb command: /opt/android-sdk-linux/platform-tools/adb
ADB version found: Android Debug Bridge version 1.0.29
Using final ADB command: '/opt/android-sdk-linux/platform-tools/adb'
Using auto-detected project path: .
Found package name: com.example.native_plasma
ABIs targetted by application: armeabi armeabi-v7a
Device API Level: 10
Device CPU ABIs: armeabi-v7a armeabi
Compatible device ABI: armeabi-v7a
Found debuggable flag: true
Found device gdbserver: /data/data/com.example.native_plasma/lib/gdbserver
Using gdb setup init: ./libs/armeabi-v7a/gdb.setup
Using toolchain prefix: /opt/android-ndk-r7/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-
Using app out directory: ./obj/local/armeabi-v7a
Found data directory: '/data/data/com.example.native_plasma'
Found first launchable activity: android.app.NativeActivity
Launching activity: com.example.native_plasma/android.app.NativeActivity
## COMMAND: /opt/android-sdk-linux/platform-tools/adb shell am start -n com.example.native_plasma/android.app.NativeActivity
Starting: Intent { cmp=com.example.native_plasma/android.app.NativeActivity }
## COMMAND: /opt/android-sdk-linux/platform-tools/adb shell sleep 2
Found running PID: 0
ERROR: Could not extract PID of application on device/emulator.
Weird, this probably means one of these:

- The installed package does not match your current manifest.
- The application process was terminated.

Try using the --verbose option and look at its output for details.

这表明应用程序段错误更少,但我不知道如何在此处设置断点,因为gdb实际上从未给出提示。

我也试过这个命令:

$ ../../toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-addr2line -f -e  libs/armeabi/libnative-plasma.so 
bedb2330
??
??:0

我相信我有调试符号。

  • ndk-build -B V=1 APP_OPTIM=debug
  • jni/ 中的Android.mkLOCAL_CFLAGS := -g
  • Ant 调试

我也 ndk-build NDK_DEBUG=1 但我仍然得到看起来我没有调试符号的地方。

这是堆栈跟踪的图像。它没有提供更多信息:

Traceback

最佳答案

需要 NDK_DEBUG=1 并且 list 中的可调试标志设置为 true。当您构建应用程序时,在您的项目/libs/armeabi 中,应该有一个 gdb.setup 文件。那里有符号搜索路径,检查是否有效。你试过这个吗:

ndk-gdb --start --verbose --force

看起来你得到了一个空指针异常。

关于android - 调试 Android NDK 原生应用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8934575/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com