やまものブログ

メモ書きブログです (^_^;A

ADT デバッガの使い方 Breakpoint (ブレークポイント)

Android Development Tools (ADT)、というか、Eclipse でのデバッガの使い方について、基本中の基本だけですがメモします。

Breakpoint (ブレークポイント) の使い方です。

まず、Breakpoint の設定ですが、ソースコード上で、行番号の左側をダブルクリックします。すると、水色の印がついて、これで設定完了です。。
イメージ 1

次に実行ですが、虫のアイコンをクリックして "Debug" で起動します。
イメージ 2

なお、右向き三角▶の "Run" で実行すると Breakpoint で停止してくれませんでした。
イメージ 3

あとはエミュレータでアプリを実行・操作して、設定した行に到達すると停止します。
Eclipse 上では Debug パースペクティブにてソースコードの該当行が表示されます。
イメージ 7

停止した状態から再開するには "Resume" をクリックします。
イメージ 5

Breakpoint は一度設定すると Eclipse を終了しても Workspace で覚えてくれているようです。逆に、不要になったら削除しないといけないわけです。

Breakpoint を削除するには、設定する際にダブルクリックした箇所、つまり、水色の印をもう一度ダブルクリックするだけです。

複数の Breakpoint をまとめて全削除することもできます。その場合、まず、パースペクティブを Debug に切り替えます。下記スクリーンショットの右上にある "Debug"  をクリックすると切り替えられます。
すると、"Breakpoints" というタブがあって、ここに設定した Breakpoint が列挙されます。
イメージ 4

あとは、タブにある「☓印が2つ重なったボタン」 "Remove All Breakpoints" をクリックすれば、全ての設定を削除できます。
イメージ 6


以上が、Breakpoint の基本的な使い方です。

他のデバッグ操作も試したかったのですが、以前から Eclipse が SIGSEGV で異常終了する問題を抱えていて、今回のデバッグでもちょっと複雑なことをしようとすると SIGSEGV にあたっています。という事情もあって、今回は Breakpoint のみでデバッグしました。

Breakpoint 以外で、よく見かける機能にスタック表示があります。これは、Debugパースペクティブにおいて左上の窓に表示される下記のような情報です。
イメージ 8

スタックに現れるメソッドやソースコードに関する知識があれば、非常に役に立つ情報だと思います。しかし、今回の自分のケースでは ADT パッケージ内部のメソッドしか表示されなかったため、あまり参考にできませんでした。上記の例は、Breakpoint で停止した状態であるためか、ユーザコードのメソッドも多く表示されていて使えそうです。


余談ですが、デバッガを使おうとして、最初に期待していたことは、エラーで停止した箇所からの「巻き戻し」でした。しかし、調べた範囲では巻き戻し機能は無さそうです。よく考えてみると、少ないながら経験のある C デバッガには巻き戻し機能は無かったはずです。また、巻き戻し機能を実装するのは相応の仕掛けが必要で、その仕掛け自体がバグ解析作業の邪魔になりかねないような気もします(素人の憶測)


最後の余談ですが、「ブレクポイント」と「ブレクポイント」はどちらが正しい日本語なのでしょうか Google で検索すると前者の方がわずかにヒット数が多かったので、ここでは前者にしました。