我正在尝试在Android项目中调试C ++ Native代码,但是,在几天试图设置调试器后, 我有这个奇怪的,并且gdb引发了非常恼人的错误消息:
远程连接错误:文件描述符错误。
我在网上搜索了同样错误的人。有一些,但没有解决他们的问题......
详细说明了我如何设置我的Android项目:
我创建了一个新的android项目,添加了原生支持,并在.mk文件中设置了以下行 (我认为其中一些线可能已被删除,但我想确定......):
LOCAL_PATH := $(call my-dir)
include $(CLEAR_VARS)
LOCAL_CFLAGS := -Wall -Werror -DANDROID_NDK -g
LOCAL_CPPFLAGS := -Wall -Werror -DANDROID_NDK -g
LOCAL_LDLIBS := -lm -llog -g -ggdb -O1
APP_OPTIM := debug
LOCAL_MODULE := native
LOCAL_SRC_FILES := native.cpp
include $(BUILD_SHARED_LIBRARY)
我在Project-> Properties-> Builders-> New-> Program:
中添加了一个新的构建器。- Location: selection the ndk-build program, in your NDK directory
- Working Directory: Select the jni folder in your solution
我删除了Project-> Properties-> C / C ++ Build中的命令行,以避免通过调用make命令生成错误消息
我在“C / C ++常规”部分中为GNU C和GNU C ++部分添加了android ndk包含路径(ANDROID_NDK_ROOT \ platforms \ android-14 \ arch-arm \ usr \ include)
我创建了一个新的“C / C ++ Application”调试器,其中包含: 选择“使用标准创建流程启动器”
in the "Main" tab
PATH_TO_MY_PROJECT\obj\local\armeabi\app_process in the "C/C++ Application" field
Name of my project in the "Project" field
我将构建配置设置为默认值。
在“调试器”选项卡中
gdbserver in the debugger combobox
in the main subtab:
GDB Debugger field: PATH_TO_NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/windows/bin/arm-linux-androideabi-gdb.exe
GDB Command file: PATH_TO_MY_PROJECT/obj/local/armeabi/gdb2.setup (I copied gdb.setup in gdb2.setup, and removed the last line as explained in most tutorials on the internet)
in the connection subtab:
Type: TCP
Host name: localhost
Port number: 5039 (the same as the one used by ndk-gdb)
我在清单中添加了android:debuggable =“true”行(另外还有.mk文件中的所有调试标志)
对于这个冗长的解释感到抱歉,但这将让您对我的配置有一个完整的了解。 我可能已经做了一些其他设置,但我认为这里解释了最重要的设置。 我在Windows 7 64上,我尝试了多种设备(模拟器,宏碁/华硕平板电脑,HTC智能手机......),其中一些已植根,但仍然崩溃。
我希望有人能够帮助我,我必须将整个项目移植到安卓...
如果有人将此调试器用于工作,我将很高兴了解您的配置!
提前致谢=)