相关疑难解决方法(0)

调试Android OS的本机库

我将为Android OS创建一个共享库.虽然我已经在Eclipse中完成了一些Android应用程序,但我决定使用Visual Studio和vs-Android附加组件开始我的本机开发:

http://code.google.com/p/vs-android/

我非常熟悉VS和Google发现附加组件作为第一个结果之一.我已经完成了整个设置过程,安装了JDK,NDK,Ant,设置了系统变量,最后得到了一个工作项目.它就像一个魅力!但是有一个很大的缺点.我无法调试本机代码.

我知道有NDK-GDB工具,但在尝试设置时我经常失败.我已经阅读了NDK-GDB.html文档,丢弃了最初的vs-Android解决方案并成功完成了以下教程:

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-development/

但现在我在试图通过时再次陷入困境:

http://mhandroid.wordpress.com/2011/01/23/using-eclipse-for-android-cc-debugging/

http://mhandroid.wordpress.com/2011/01/23/using-cgdb-with-ndk-debug-and-cgdb-tutorial/

我也尝试过WinGDB - 刚刚导入的包含本机和Java代码的工作Eclipse项目,但它甚至都没有编译.

简而言之,这个难题有很多部分,但我仍然缺少其中一些.我担心我错过了使用像NDK-GDB这样的命令行工具调试代码的整个想法.

有人能为我提供一些解释和明确的步骤如何调试本机库(无论是vs-android还是Eclipse或其他什么都无关紧要)?请注意,我不是Linux大师,也不熟悉cygwin或gdbserver.

android android-ndk

7
推荐指数
1
解决办法
1万
查看次数

如何调试使用cmake外部编译的android native C库

本质上,我需要调试FreeRDP Android项目中包含的本机C代码。

我使用指示的bash脚本成功编译了从Github下载的项目。 https://github.com/FreeRDP/FreeRDP/blob/master/docs/README.android

我还使用Android Studio正确编译了Android部分。通过连接到几个Windows服务器,我可以在几个设备上正确运行Android应用程序,而不会出现问题。

对本机库中的C源代码进行更改会生成运行时错误,因此我需要调试C源代码。

我确实遇到了他的问题,没有人能够回答,我什至不知道他是否找到了解决办法。不幸的是,我的声誉(<50)不允许我在该帖子(和其他类似内容)下发表评论


我认为.so文件已正确编译,我已经检查过objdump --symsobjdump --debugging但无法进入本机代码。在Android Studio中,我已经设置好了,Debug type: Dual而且我也尝试穿上没有效果的LLDB Startup Commands东西breakpoint set --name <function>

当本机代码引发异常时

---------崩溃开始
10-02 14:42:22.064 32032-32032 / com.freerdp.afreerdp A / libc:致命信号11(SIGSEGV),代码1,在tid 32032中的故障地址0x28( reerdp.afreerdp)

调试因以下错误而停止:

__ lldb_unnamed_symbol64 $$ libfreerdp-android2.so

(由于我的声誉,我无法发布Android Studio屏幕截图)


当然,创建使用本机代码并在本机代码中设置brackpoint的应用程序没有问题。 https://developer.android.com/ndk/guides/index.html


环境:
Ubuntu 16.04.3 LTS
Android Studio 2.3.3
Gradle版本3.3
cmake版本3.5.1(在系统上)
cmake版本3.6.0-rc2(在android sdk上)
lldb版本4.0.0(在android sdk上)

在此先感谢任何可以给我任何帮助的人。

安德里亚

debugging java-native-interface android-ndk android-studio freerdp

5
推荐指数
0
解决办法
622
查看次数