2013-06-12 78 views
3

我對android的csipsimple應用做了一些更改,我想調試它的本機代碼。我在Ubuntu 12.10下使用ADT軟件包v21.1開發(eclipse 3.7,cdt 8.1)。什麼是在Android中調試本機代碼的工具

我遇到了this教程,在eclipse下本地調試,但它不適用於我(請參閱我的問題Debugging native code in android under eclipse fails)。 我現在正在嘗試ARM DS-5解決方案,沒有額外的運氣。 我也遇到過這個nvidia solution,但我不確定是否值得努力。 我沒有嘗試Sequoyah插件,因爲它看起來過時了。

任何人都可以請指導我一個很好的穩定GUI調試工具或方法在設備上調試Android本機代碼(我的設備是HTC夢想)。

+0

我仍在最近的android sdk上使用Sequoyah,它對本機調​​試工作得很好。 – JonnyBoy

回答

7

沒有人喜歡這個答案,但是ndk-gdb非常可靠。使用它可能會很痛苦,但一旦你開始不那麼糟糕。

基本調試方法是:

  1. 設置在Eclipse中斷點在這裏裝載本地庫行。
  2. 在Eclipse中開始調試
  3. 跳過加載庫行。不要繼續!
  4. 在命令行中,啓動ndk-gdb
  5. 在gdb中設置斷點。輸入 'C' 爲繼續
  6. 返回到Eclipse和繼續

瞧!你的C斷點將被擊中!

當然,你需要在終端上設置所有的東西......如果你不熟悉,我會建議你打印一張gdb備忘單。

+1

耶!我完全同意。實際上,我建議將它連接到cgdb(或ddd,如果這是您的一杯茶) – DevByStarlight

2

一直使用默認的Android工具在Eclipse中調試本機代碼很長一段時間(年份++)。

一些提示可能有所幫助。

  • 保持在主應用程序項目(而不是單獨的庫項目)
  • 創建一個正在運行的Java應用程序中的JNI內容第一添加任何本地代碼
  • 之前「添加本機支持」只用默認的CPP文件它會生成然後關閉並重新打開eclipse(它應該自動嘗試並構建本機端)。本地代碼需要至少成功一次才能成功開發。一旦成功,然後添加任何額外的來源和更新MK文件等
  • 終端是你的朋友...和ndk-gdb也是!
  • 加載本地庫後加上「掛10」 ......十層秒鐘的延遲(在Java中)(允許調試器附加)
  • 步通過代碼慢慢允許網絡通信跟上
  • 減少ABI的號碼以免混淆調試器

玩得開心!

0

可能不是最好的解決方案,因爲我還沒有嘗試其他的,但Nvidia調試管理器的Android是相當不錯,並且易於使用。它配備了Tegra Android開發包,可從以下網址獲得:https://developer.nvidia.com/tegra-android-development-pack

+0

它適用於非Tegra設備嗎? – WindRider

+1

它適用於非Tegra設備,雖然您可能會收到警告,指出您的設備不是Tegra,但它不會阻止任何東西。 – eozgonul

+0

該死的。它需要Eclipse 4.3,我非常討厭它。 – WindRider

相關問題