2012-10-19 35 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中」。 –