ABAP入門(9/10):デバッグ

2009年12月21日 Posted in ABAP Posted in SAP 技術トピック

今回は、開発時の肝心の機能、デバッグについてご説明したいと思います。

 

まず、ブレークポイントの設定の仕方です。

 

これまで作成したレポートプログラムのどれかを開きます。

ブレークポイントを設定したい行をクリックし、セッションブレークポイントの設定/削除ボタンを押します。

これでブレークポイントが設定されました。

実行してみます。

デバッガが起動され、ブレークポイントを設定した箇所で処理が停止しています。

 

では、デバッガの使い方に移ります。

 

デバッガ上で、変数をダブルクリックすると、

このように右側に変数とその値が表示されます。

さらにこれをダブルクリックすると、

詳細表示に切り替わるので、ここで、項目内容変更ボタンを押します。

すると、編集可能になるので、値を書き換えたい場合は、ここで編集します。(操作方法がわかりにくいですが、Enterを押すと保存され、参照モードに戻ります)

 

再度Desktop1タブに戻り、今度は、処理を進める方法です。

左上に

こんなボタンがありますが、これらで操作します。

 

まず一番左の

シングルステップ(F5)ですが、これはそのまんま、一ステップ毎に処理してきます。

 

次に、一番右の、

続行(F8)ですが、これも単純で、残りの処理を最後まで実行します。もし途中にさらにブレークポイントがあれば、再度そこで止まります。

 

左から二番目の、

実行(F6)はややわかりにくいのですが、普通の処理は、シングルステップ(F5)と同様に、一つずつ処理していくのですが、プログラム(汎用モジュールやサブルーチン)を呼ぶ処理の場合は、シングルステップ(F5)はそのプログラムの最初のステップに移るのですが、実行(F6)の場合は、そのプログラムの処理を最後まで実行し、次の処理に移ります。

 

例えば、

この状態だと、シングルステップ(F5)でも実行(F6)でも、押すと

このように次の処理に移るのですが、ここで、シングルステップ(F5)を押すと、

このように汎用モジュールの最初のステップに移り、引き続き一ステップずつ処理していきます。

 

しかし、実行(F6)を押した場合は、

このように、汎用モジュールは処理してしまい、次のステップに写っています。

 

そのため、シングルステップ(F5)では、際限なくネストした処理に潜っていってしまい、時間がかかるので、早く先に進めたいような場合に使用するといいかと思います。

 

最後に、左から三番目の、

リターン(F7)ですが、これは、現在のステップのプログラムの、残りの処理を実行し、呼び出し元における次のステップに移ります。

 

例えば、

汎用モジュールZ_TESTFMの途中のステップで、リターン(F7)を押すと、

このように、汎用モジュールの残りの処理を実行し、汎用モジュールが呼び出された箇所の次のステップに移ります。

 

そのため、複雑なプログラムの処理を解析する際に、呼び出し元をたどっていき大元の処理を調べる際などに役に立ちます。

 

さて、先程はブレークポイントを設定しましたが、もう一つ、ウォッチポイントというのもあるのでご紹介しておきます。

 

デバッガの画面で、

ウォッチポイントの登録ボタンを押します。

ここで、変数の値が変化した際に停止するように監視する変数名を指定します。

そして実行すると、

このように変数に値が入ったり、その値が変更された時点で処理が停止します。

 

この機能は、一般的な開発時の機能として、変数の変化を確認する機能としてイメージしやすいと思いますが、SAP特有の使い方もあったりしますのでちょっとご紹介します。

例えば、この場合は、エラーメッセージが、メッセージID  SABAPDOCU、メッセージ番号 888で出力されている状態です。ウォッチポイントの登録画面の下のほうに追加条件が設定できるので、SY-MSGID=SABAPDOCU、SY-MSGNO=888となるように設定しておけば、このエラーメッセージが出力される場所を特定できることになります。

 

ですので、標準機能の設定をしていて、何かわけのわからないエラーメッセージが出る場合に、最後の手段として、プログラム的にどのような条件で、どのテーブルの値を根拠にそのエラーメッセージが出されているか、のようなことを調べる時などに使えます。

(標準機能が複雑すぎて調べきれないこともありますが。。)

 

 

さて、上記がデバッグの基本の部分となります。

 

上記では、デバッガの起動にブレークポイントを使用してますが、もう一つ便利で重要な起動方法があります。

 

どのプログラム、トランザクションでもいいので、デバッグしたいプログラムを実行します。

例えば、これは受注伝票の照会画面です。今受注伝票番号と入力してますので、Enterを押すと、データを取得する処理に移ります。仮にその処理内容をデバッグしたいとすると、この画面で、

t-cd /h

を入力しEnterを押します。

するとデバッガが起動され、この画面での次の操作を行うと直ちにデバッガが起動されます。

ですので、この状態でEnterを押すと、

このように、受注伝票照会のプログラムに対してデバッガが起動されます。

 

あとは、左上のボタンを使って各ステップを眺めていってもいいですし、ブレークポイントやウォッチポイントを駆使して調べたい処理を探っても結構です。

 

基本的な操作は以上になりますが、ご覧の通り、デバッガにはさらに色々なビューがあり、色々な事が可能となってますので、後は皆さんでいじっていっていただければと思います。

 

 

REALTECH 藤川


このエントリーをはてなブックマークに追加
トラックバックURL:

コメントする

(コメントを表示する際、コメントの承認が必要になることがあります。承認されるまではコメントは表示されません。その時はしばらくお待ちください。)