2011-05-31 77 views
9

我正在開發一個android的應用程序,使用我編寫的一些共享的 庫,並使用ndk-r5b編譯。該應用程序工作, y和調用庫的作品,但我檢測到一些錯誤, 分割錯誤,我需要調試它,但是,我不知道如何調試 本機代碼從android和我不' t知道我是否可以生成核心轉儲文件, 與linux一樣,用於調試我的庫。在android中生成核心轉儲

有什麼想法?

回答

5

ndk帶有ndk-gdb,它可以讓你調試原生應用程序。另外,如果你下載整個andriod開源項目,他們也有一些版本的gdb用於調試。查看ndk的文檔/文件夾以瞭解如何使用它。本教程可能也有幫助:http://vilimpoc.org/blog/2010/09/23/hello-gdbserver-a-debuggable-jni-example-for-android/

但是,如最近的一個問題所示,我問:Running ndk-gdb with package not found error on motorola phone我仍然無法使它工作。

編輯:您在使用三星設備的評論中說過:三星決定破壞本機調試所需的一些關鍵內部設施,但如果您擁有對設備的root訪問權限,則很容易解決。如果您使用--verbose標誌,您可能會發現錯誤與此不同,包未知錯誤。這是因爲它正在查看/data/system/packages.list,但是samsung已將該文件重命名爲/dbdata/system/packages.list。所以,如果你在/data/system/packages.list中創建一個符號鏈接(需要root權限),它應該可以工作。或至少如此索賠的ndk郵件列表:http://osdir.com/ml/android-ndk/2011-03/msg00036.html

+0

謝謝雷夫,我知道ndk-gdb存在,但我總是得到相同的 錯誤...「也可能設置網絡重定向到gbdserver? 也許使用--port = 使用不同的TCP端口可能 幫助?「...我無法解決它。我正在調試三星 選項卡GT p1000 – Chris 2011-05-31 16:15:27

+0

啊,好的。三星決定破壞本機調試所需的一些關鍵內部組件,但如果您擁有對設備的root訪問權限,則它很容易修復。如果您使用--verbose標誌,您可能會發現錯誤與此不同,包未知錯誤。這是因爲它正在查看/data/system/packages.list,但是samsung已將該文件重命名爲/dbdata/system/packages.list。因此,如果您在/data/system/packages.list中創建符號鏈接(需要root訪問權限),那麼它應該可以工作。 – 2011-06-01 03:50:41

+0

這裏是我想我從那裏得到的答案:http://osdir.com/ml/android-ndk/2011-03/msg00036.html – 2011-06-01 03:52:10