Androidのネイティブプログラミングをしているときに厄介なのがデバッグ作業です。
一応、最近のSDK(NDK)を使っていれば、ndk-gdb でデバッガをつなげたりするのですが、ちょっと大変です。
できることなら普段のVisualStudioで開発するような感じで実行&ブレークポイント設定したいもんです。これを実現させてくれるのが、WinGDB for Mobile Systems というソフトウェアです。
現在はまだベータ版なのですが一通りのことは実現させてくれます。
今から製品版が楽しみで、登場したら価格次第ではさっさと買いたいですね。
一応、最近のSDK(NDK)を使っていれば、ndk-gdb でデバッガをつなげたりするのですが、ちょっと大変です。
できることなら普段のVisualStudioで開発するような感じで実行&ブレークポイント設定したいもんです。これを実現させてくれるのが、WinGDB for Mobile Systems というソフトウェアです。
現在はまだベータ版なのですが一通りのことは実現させてくれます。
今から製品版が楽しみで、登場したら価格次第ではさっさと買いたいですね。
Java + jniで構成されている環境をインポートして.slnを作成します。
あとは、いつもどおりにF5で実行が可能です。
■できたこと
- ソースコードレベルでのブレークポイント設置
- 変数の値表示、メモリ表示
■不満点
- スタティックライブラリ作成
ゼロからのプロジェクト作成で、ネイティブのスタティックライブラリを作成することができないという点です。
個人的にちょっとこれは対応してほしい点ですね。
Android.mkなどがすでに用意されている状態でならば、インポートによりスタティックライブラリの開発ができました。
- Tegra Android Development Pack(TADP)との相性
どうもTADPをインストールした後でWinGDBいれるとうまく動かないようです。
cygwinやSDK,NDKのパスをTADPで設定されたものにしているのですが。
プロジェクトのビルドができないようです。
使う場合には、TADPに頼らずちくちくと自前でインストールしましょうってことなんでしょう。
■まとめ
ndk-gdbがうまく使える環境なら、WinGDBも使えると思います。
手元ではGalaxySはうまく動きませんでしたが、ICONIA Tabでやってみたらうまくいきました。
ndk-gdbも、デバッガがない状態からすればとても便利なのですが、
このWinGDBからみるとやはり使いづらいと思います。
printfなどでデバッグしてきた世代からみると夢のような状態ですが、
ソースコードレベルでのデバッグしか経験してないと、Androidでネイティブの環境はきつすぎます・・・。