2012-10-19 37 views
3

我想用gdb来调查我没有任何资源的应用程序。使用gdb跟踪外国的android程序或应用程序 - 加载符号?

使用Android NDK提供的工具,我已经想出了如何在设备上启动gdbserver,然后在PC上启动正确的gdbclient以及如何通过远程模式连接这两个工具。

现在的问题是,如果我试图设置像fopen这样的属于像cstdlib这样的标准库的方法的断点,gdb会拒绝这样做,因为它会错过符号文件。

从哪里可以找到正确的符号文件(Android NDK的具体子目录?)以及如何在远程模式(gdb命令)下运行时将它们加载到gdb中?

PC平台是Windows和Android是运行4.1.2

+0

尝试从仿生物上放置一个断点。或Log.d. – Shark

+0

如果你只是需要源代码,并且如果你有或者愿意访问apk(通过生根),你可以解压它来查看源代码。 – Phil

回答

-1

这已经有一段时间,因为我做了什么GDB的Galaxy Nexus手机,但你的问题引起了我的注意。我没有安装NDK,所以我无法说出文件的位置。但是我发现一些关于加载缺失符号的信息。

本教程看起来有点像你想做什么: http://marcioandreyoliveira.blogspot.com/2008/03/how-to-debug-striped-programs-with-gdb.html

但它假定你建立你的二进制文件,并可以建立一个与符号。我不确定它是否会只加载cstdlib等,但这是一个开始。

+0

我很抱歉,但您的回答没有太大的帮助。正如我在我的问题中写的那样,它是一个外国应用程序,因此我不建立任何东西,因此我不能重建应用程序。此外,该帖子不回答从哪里获取符号文件。 – Robert

+0

对不起,我想这应该是一个评论,而不是一个答案。你确实问过“以及如何在远程模式(gdb命令)下运行时将它们加载到gdb中”。 –