Java開発の問題解決を助ける(1)
デバッグでのブレークポイント活用


IDEのデバッガを使ってみよう

 では、実際にサンプルプログラムを例にしてデバッガによる効率的な問題個所の切り分けを行ってみましょう。サンプルプログラムのコードはここ(sample.zip)からダウンロードできます。IDEにはSun Java Studio Enterpriseを使用し(評価版をダウンロードして利用できます)、ツールを活用しての「問題の切り分け方」をご紹介します。読者の皆さんは、ぜひご自分で試してみてください。なお、ここでの目的は、Sun Java Studio Enterpriseの紹介ではありませんのでご注意ください。

エラーを含んだサンプルプログラム

 このプログラムはXML操作を行います。そのため、JDK 1.3以前のJavaVMを使用されている場合には別途JAXP等の必要なライブラリをクラスパスに追加してください。このサンプルプログラムは次のようなXMLファイルを読み込んで、その内容を標準出力に出力するようなプログラムです。

読み込むXMLファイル
<?xml version="1.0" encoding="UTF-8"?>

<article>
  <title>My Sample</title>
  <author>Takayuki Okazaki</author>
</article>

期待する出力例
title : My Sample
author : Takayuki Okazaki

 このプログラムを実行したところ、期待に反して次のような出力が得られました。

title : My Sample
author : null

 author に名前(Takayuki Okazaki)が出力されるべきところですが、nullが表示されてしまっています。ではさっそく、IDEを使ってどこに問題があるのか、分析していきましょう。

環境の準備

 デバッグを行うためのIDEとして、今回はSun Java Studio Enterpriseを使ってみます。

  1. Sun Java Studio Enterpriseをお持ちでない場合には、次のURLから90日間すべての機能が利用できる評価版をダウンロードすることができます。インストール手順については、インストールガイドを参照してください。
    http://jp.sun.com/products/software/tools/jsenterprise/download.html

  2. このサンプルのためのプロジェクトを作成します。メニューの[プロジェクト]から[プロジェクトマネージャ]を選択し、プロジェクトを新規作成します。ここではプロジェクト名“Sample”を作成しています。


  3. サンプルのファイルを展開したディレクトリをマウントします。メニューの[ファイル]から[新規]を選択し、ローカルディレクトリを選択します。



  4. プロジェクトが作成できたら、最初のサンプル Sample01クラスを実行します。ファイルシステムのタブでSample01を選択し、メニューの[構築]から[引数を設定]でsample.xmlへの絶対パスを指定します。なお、パスに空白が含まれる場合は""(ダブルクオート)で囲む必要があります。


デバッガによるプログラムの実行

 Sun Java Studio Enterpriseのような統合開発環境ではプログラムを開発し、実行する際に通常の実行とデバッグ実行という2種類の実行モードを持っています。通常の実行ではデバッグ機能を使用することができませんが、デバッガツールによるパフォーマンス劣化が起こりません。今回はデバッガツールを使用しますのでデバッグモードによる実行を行います。

 デバッグ実行を行う際には主に次の2つの機能を使いながらプログラムの動きを制御し、問題個所を絞り込みます。

  • ブレークポイントの設定
  • ステップ実行

 ブレークポイントは、プログラムの実行を一時停止する条件または場所を設定する機能です。実行を一時停止することによりその時点における各変数の内容を参照したり、スレッドの状態を見ることができます。このブレークポイントを問題がありそうな部分に設定し変数の内容を検討することによって、どの部分までは正常に動作していて、どこから異常が起こっているのかを限定していきます。

 ステップ実行はプログラムを1行ずつ一時停止しながら実行する機能です。プログラムの動作を1つ1つ確かめながら変数の内容をチェックすることによって、問題の起こった個所を特定します。ステップ実行は1行ずつ実行していかなければならないため非常に時間がかかります、ブレークポイントによって問題個所を絞り込んでからステップ実行による確認を行うと効率的です。

2/3

 INDEX

第1回 Java開発の問題解決を助ける
  Page1
問題はどんなところに潜んでいるのか
問題のタイプと解決の視点
ツールを活用する
 

Page2
デバッガを使ってみよう

  Page3
ブレークポイントを設定し問題個所を絞り込む








Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間