Tôi đang cố gắng gỡ lỗi và bước qua ứng dụng Android tách biệt. Tôi đã thử ndk-gdb
, nhưng với chút may mắn. Tôi cũng đã gọi đến số Android NDK Debugging mà không thể gỡ lỗi ứng dụng của mình.Gỡ lỗi ứng dụng gốc của Android NDK
Khi tôi cố gắng ndk-gdb --start
, và tôi nhận được:
$ 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.
Điều này cho thấy rằng việc áp dụng segfaulted ít hơn, nhưng tôi không biết làm thế nào để thiết lập một breakpoint ở đây từ gdb không bao giờ thực sự mang đến một dấu nhắc.
Tôi cũng đã cố gắng lệnh này:
$ ../../toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin/arm-linux-androideabi-addr2line -f -e libs/armeabi/libnative-plasma.so
bedb2330
??
??:0
Tôi có ký hiệu gỡ lỗi tôi tin.
ndk-build -B V=1 APP_OPTIM=debug
Android.mk
trongjni/
cóLOCAL_CFLAGS := -g
ant debug
Tôi cũng đã ndk-build NDK_DEBUG=1
nhưng tôi vẫn nhận được nơi có vẻ như tôi không có ký hiệu gỡ lỗi.
Đây là hình ảnh theo dõi ngăn xếp. Nó không nhận được bất kỳ thông tin mới hơn:
Tôi không biết nếu nó sẽ giúp đỡ, nhưng nếu bạn đang tìm kiếm một số tài liệu (đó là hết hạn, đầu óc , khi nó nói về NDK r5b), sau đó tôi đã viết một hướng dẫn cách đây vài tháng mà bạn có thể tìm thấy [ở đây] (http://www.doc.ic.ac.uk/~cb908/AndroidNDK.html).Tôi sợ rằng tôi không thể cung cấp thêm thông tin chi tiết về vấn đề, ngoại trừ việc kiểm tra tên gói được xuất trong nhật ký đó giống như trong tệp kê khai (nhưng tôi tưởng tượng nó là vì nó tìm thấy thư mục dữ liệu và nội dung) –
Cảm ơn. Có vẻ như bạn đã sử dụng Eclipse. Tôi đang sử dụng dòng lệnh. Tôi hy vọng tôi không phải sử dụng Eclipse. : \ – Scott
Ah, vâng, tôi không nghĩ về điều đó. Các nguyên tắc phải giống nhau - theo như tôi biết Eclipse chỉ hiển thị đầu ra gdb và cung cấp cho gdb các lệnh đúng (ví dụ khi bạn nhấp vào nút bước) - vì vậy không, bạn không cần sử dụng nó. Bạn có thể thử tắt tối ưu hóa trong 'LOCAL_CFLAGS' (-O0 tôi nghĩ), nhưng tôi nghi ngờ nó sẽ làm nhiều. Cách xa ứng dụng là điểm dừng đầu tiên của bạn? –