(57)【要約】【課題】ソースコードのデバッグを支援するデバッグ支援装置に関して、ユーザフレンドリなユーザインタフェースを実現する。【解決手段】ソースコードのデバッグを支援するデバッグ支援装置であって、デバッグ対象のソースコードの内容に含まれ、前記ソースコードとは異なるファイルで定義されている関数の内容を、第１の所定のデータを用いて、前記ファイルから取得し、前記ソースコードの内容と、前記関数の内容とが、同じ表示枠内に表示されるように、前記関数の内容を、第２の所定のデータを用いて、前記ソースコードの内容における前記関数の呼び出し位置に表示する、ソースコード表示手段を備えることを特徴とするデバッグ支援装置。【選択図】図１
2008071044.tif 000002
【特許請求の範囲】
【請求項１】
ソースコードのデバッグを支援するデバッグ支援装置であって、
デバッグ対象のソースコードの内容に含まれ、前記ソースコードとは異なるファイルで定義されている関数の内容を、第１の所定のデータを用いて、前記ファイルから取得し、
前記ソースコードの内容と、前記関数の内容とが、同じ表示枠内に表示されるように、前記関数の内容を、第２の所定のデータを用いて、前記ソースコードの内容における前記関数の呼び出し位置に表示する、ソースコード表示手段を備えることを特徴とするデバッグ支援装置。
【請求項２】
前記第１の所定のデータは、前記関数の定義位置に係るデータであり、
前記第２の所定のデータは、前記関数の呼び出し位置に係るデータであることを特徴とする請求項１に記載のデバッグ支援装置。
【請求項３】
前記ソースコード表示手段は、前記関数を展開する旨の展開操作に応じて、前記関数を展開して表示し、又は前記関数の展開を解除する旨の展開解除操作に応じて、前記関数の展開を解除して表示することを特徴とする請求項１又は２に記載のデバッグ支援装置。
【請求項４】
操作手段による指定操作により前記表示枠内の前記ソースコード中に指定された指定箇所に、前記ソースコードのデバッグの際のブレークポイントを設定する、ブレークポイント設定手段を備えることを特徴とする請求項１乃至３のいずれか１項に記載のデバッグ支援装置。
【請求項５】
前記ブレークポイント設定手段は、関数の展開状況に応じて、前記ブレークポイントのブレーク条件を設定することを特徴とする請求項４に記載のデバッグ支援装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ支援装置に関する。
【背景技術】
【０００２】
近年、プログラムのデバッグの際には、デバッガと呼ばれるデバッグ支援プログラムが使用される事が多い。デバッガには、バグの検証をオブジェクトコードレベルで実施するための「アブソリュートデバッガ」と、バグの検証をソースコードと対応付けて実施するための「シンボリックデバッガ」とがある。通常の用途にはシンボリックデバッガが使用される事が多く、アブソリュートデバッガは特殊な用途に使用される事が多い。デバッガには通常、プログラムの実行を特定の位置で中断する「ブレークポイント機能」や、プログラムを各ステップ毎に動作を確認しながら実行する「ステップ実行機能」や、メモリやレジスタや変数の状態を確認するための「トレース機能」が設けられている（特許文献１及び特許文献２）。デバッガは、プログラム開発ツールの一機能として提供されている事も多い。
【０００３】
従来のデバッガには、以下のような問題がある。
【０００４】
従来のデバッガには第１に、デバッグ対象のソースコードの内容を閲覧する際、ソースコードの内容に含まれ、ソースコードとは別のファイルで定義されている関数の内容が、見づらいという問題がある。
【０００５】
従来のデバッガの中には、内容を閲覧したい関数を指定すると、指定した関数の内容をウィンドウ内に表示してくれるものがある。このようなデバッガでは、指定された関数の内容がソースコードとは別のファイルで定義されていると、指定された関数の内容が表示される際、ウィンドウがソースコード用のウィンドウとは別のウィンドウに切り替わってしまう。従って、ユーザは、ソースコードの流れを見失ってしまうことになり、ユーザにとって、表示内容は非常に見づらいものとなる。
【０００６】
従来のデバッガには第２に、ブレークポイントのブレーク条件を設定する際、ブレーク条件を設定するのに手間が掛かるという問題がある。
【０００７】
例えば、ソースコード中の複数箇所で呼び出される関数Ｘ中にブレークポイントを設定する際に、「関数Ａ、関数Ｂ、関数Ｘという流れで関数Ｘが呼び出された場合にブレークを発生させる」というようなブレーク条件を設定する事がある。この場合、従来のデバッガでは、「関数Ａが呼び出され、且つ関数Ｂが呼び出され、且つ関数Ｘが呼び出された場合にブレークを発生させる」というようなブレーク条件式をユーザが自ら考えて設定する必要がある。ユーザには、ブレーク条件式を自ら考えるという手間が掛かることになる。
【特許文献１】特開２００１−６０１６１号公報
【特許文献２】特開２０００−２０７２４６号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
本発明は、ソースコードのデバッグを支援するデバッグ支援装置に関して、ユーザフレンドリなユーザインタフェースを実現することを課題とする。
【課題を解決するための手段】
【０００９】
本発明は、例えば、ソースコードのデバッグを支援するデバッグ支援装置であって、デバッグ対象のソースコードの内容に含まれ、前記ソースコードとは異なるファイルで定義されている関数の内容を、第１の所定のデータを用いて、前記ファイルから取得し、前記ソースコードの内容と、前記関数の内容とが、同じ表示枠内に表示されるように、前記関数の内容を、第２の所定のデータを用いて、前記ソースコードの内容における前記関数の呼び出し位置に表示する、ソースコード表示手段を備えることを特徴とするデバッグ支援装置に係る。
【発明の効果】
【００１０】
本発明は、ソースコードのデバッグを支援するデバッグ支援装置に関して、ユーザフレンドリなユーザインタフェースを実現することを可能にする。
【発明を実施するための最良の形態】
【００１１】
図１は、ソースコードのデバッグを支援するデバッグ支援装置１０１のシステム構成図である。図１のデバッグ支援装置１０１はここでは、シンボリックデバッガ等のデバッグ支援プログラムがインストールされたパーソナルコンピュータ等の情報処理装置である。当該デバッグ支援プログラムはここでは、当該情報処理装置内のＨＤＤ等のストレージに格納されており、当該情報処理装置内のＣＰＵ等のプロセッサで実行される。
【００１２】
図１のデバッグ支援装置１０１は、ＰＣ本体等の情報処理部１１１と、ディスプレイ等の表示部１１２と、キーボードやマウス等の操作部１１３とを具備する。図１のデバッグ支援装置１０１には更に、上記のデバッグ支援プログラムにより実現される機能ブロックとして、デバッガ部１２１と、ソースコード解析部１２２と、ソースコード表示部１２３と、ブレークポイント設定部１２４とが存在する。
【００１３】
デバッガ部１２１は、デバッガとしての種々の処理を行う機能ブロックである。ソースコード解析部１２２は、デバッグ対象のソースコードの解析処理等を行う機能ブロックであり、ソースコード解析手段の例に相当する。ソースコード表示部１２３は、デバッグ対象のソースコードの表示処理等を行う機能ブロックであり、ソースコード表示手段の例に相当する。ブレークポイント設定部１２４は、デバッグ対象のソースコードに対するブレークポイントの設定処理等を行う機能ブロックであり、ブレークポイント設定手段の例に相当する。
【００１４】
以下、図１のデバッグ支援装置１０１によるデバッグ支援処理に関する種々の実施例について説明する。
【００１５】
（第１実施例）
図１のデバッグ支援装置１０１では、図２Ａのように、デバッグ対象のソースコードの内容が、ソースコード表示部１２３により、表示部１１２の画面上のウィンドウ２０１内に表示される。ソースコード表示部１２３は、上記ソースコードと異なるファイルで定義されている関数Ｂ，Ｃについては、これらの関数を展開するための展開ボタン２１１Ｂ，２１１Ｃをウィンドウ２０１内に表示する。
【００１６】
関数Ｂの展開ボタン２１１Ｂを操作部１１３によりクリックすると、図２Ｂのように、関数Ｂの内容が、ソースコード表示部１２３により、ウィンドウ２０１内において、上記ソースコード中における関数Ｂの呼び出し位置に表示される。即ち、関数Ｂの展開ボタン２１１Ｂをクリックすると、関数Ｂが展開され、関数Ｂの内容が画面上に現れる。関数Ｂを展開するための展開ボタン２１１Ｂは、関数Ｂの展開を解除するための展開解除ボタン２１２Ｂに変化する。逆に、関数Ｂの展開解除ボタン２１２Ｂをクリックすると、関数Ｂの展開が解除され、関数Ｂの内容が画面上から消える。関数Ｂの内容はここでは、ウィンドウ２０１内において、上記ソースコード中における関数Ｂの呼び出し位置に生成されたボックス２０２内に表示されている。ソースコード表示部１２３は、上記ソースコード及び関数Ｂと異なるファイルで定義されている関数Ｘ，Ｙ，Ｚについては、これらの関数を展開するための展開ボタン２１１Ｘ，２１１Ｙ，２１１Ｚをウィンドウ２０１内（のボックス２０２内）に表示する。
【００１７】
関数Ｘの展開ボタン２１１Ｘを操作部１１３によりクリックすると、図２Ｃのように、関数Ｘの内容が、ソースコード表示部１２３により、ウィンドウ２０１内（のボックス２０２内）において、上記ソースコード中（の関数Ｂ中）における関数Ｘの呼び出し位置に表示される。即ち、関数Ｘの展開ボタン２１１Ｘをクリックすると、関数Ｘが展開され、関数Ｘの内容が画面上に現れる。関数Ｘを展開するための展開ボタン２１１Ｘは、関数Ｘの展開を解除するための展開解除ボタン２１２Ｘに変化する。逆に、関数Ｘの展開解除ボタン２１２Ｘをクリックすると、関数Ｘの展開が解除され、関数Ｘの内容が画面上から消える。関数Ｘの内容はここでは、ウィンドウ２０１内において、上記ソースコード中における関数Ｂの呼び出し位置に生成されたボックス２０２内に表示されている。
【００１８】
このように、本実施例では、デバッグ対象のソースコードの内容がウィンドウ２０１内に表示されると共に、該ソースコードの内容に含まれ、該ソースコードとは異なるファイルで定義されている関数の内容が、ウィンドウ２０１内において、該ソースコードの内容における該関数の呼び出し位置に表示される。即ち、本実施例では、デバッグ対象のソースコードと異なるファイルで定義されている関数の内容が、デバッグ対象のソースコードと同じ表示枠（ここではウィンドウ２０１）内の所定の位置に表示される。これにより、本実施例では、デバッグ対象のソースコードと異なるファイルで定義されている関数の内容が見づらいという従来のデバッガの問題が解消され、デバッグ対象のソースコードと異なるファイルで定義されている関数の内容が見やすいものとなる。
【００１９】
更に、本実施例では、ある関数を展開する旨の展開操作（ここでは展開ボタン２１１のクリック操作）に応じて、その関数が展開され、ある関数の展開を解除する旨の展開解除操作（ここでは展開解除ボタン２１２のクリック操作）に応じて、その関数の展開が解除される。これにより、本実施例では、ユーザが自由に関数を展開したり関数の展開を解除したりできるようになり、関数の内容の見やすさが更に向上される。
【００２０】
以下、以上のソースコード表示処理に先だち実行されるソースコード解析処理について説明する。
【００２１】
図１には、デバッグ支援装置１０１内に、デバッグ対象のソースコードのソースコードファイル群３０１が格納されている様子が示されている。各ソースコードのソースコードファイル群３０１は、該ソースコードが格納されているファイルと、該ソースコード用の関数が定義されているファイル等からなる。
【００２２】
デバッグ支援装置１０１内では、ソースコード解析部１２２により、各ソースコードのソースコードファイル群３０１が解析されて、各ソースコードのソースコードファイル群３０１から、各ソースコードの関数定義位置データ３０２と、各ソースコードの関数呼び出し位置データ３０３が取得される。関数定義位置データ３０２は、各関数の定義位置に係るデータであり、ここでは、各関数の定義ファイルのファイル名及びファイルパス等からなる。関数定義位置データ３０２の具体例を、図３に示す。一方、関数呼び出し位置データ３０３は、各関数の呼び出し位置に係るデータであり、ここでは、各関数の呼び出し行番号及び呼び出し列番号等からなる。関数呼び出し位置データ３０３の具体例を、図４に示す。
【００２３】
デバッグ支援装置１０１内では、ソースコード表示部１２３が、各ソースコードの関数定義位置データ３０２及び関数呼び出し位置データ３０３を利用して、ソースコード表示処理を実行する。例えば、図２Ａの関数Ｂの展開ボタン２１１をクリックすると、ソースコード表示部１２３は、関数Ｂの関数定義位置データ３０２を利用して、関数Ｂの内容をソースコードファイル群３０１から取得するとともに、関数Ｂの関数呼び出し位置データ３０３を利用して、関数Ｂの内容の表示位置を特定する。関数Ｂの内容は、関数Ｂの呼び出し位置に表示されることになり、関数Ｂの内容の表示はここでは、行方向には、関数Ｂの呼び出し行の次の行から開始され、列方向には、関数Ｂの呼び出し列と同じ列から開始される。この際、関数Ｂの呼び出し行と表示開始行との間には、所定間隔のマージンスペースが設けられてもよく、関数Ｂの呼び出し列と表示開始列との間には、所定間隔のインデントスペースが設けられてもよい。即ち、関数Ｂの内容の、関数Ｂの呼び出し位置への表示は、関数Ｂの呼び出し位置の直下への表示である必要はなく、関数Ｂの呼び出し位置の近傍への表示で十分である。その後、ソースコード表示部１２３は、関数Ｂを展開する一方で、関数展開データ３０４の登録（新規登録又は更新登録）を行う。関数展開データ３０４は、各ソースコードの関数の展開状況に係るツリー状のデータである。関数展開データ３０４に関する概念図を、図５に示す。図５Ａ，Ｂ，Ｃの関数展開データ３０４はそれぞれ、図２Ａ，Ｂ，Ｃの関数展開状況に対応している。
【００２４】
図６は、ソースコード表示処理に関するフローチャートである。
【００２５】
ソースコード表示部１２３は、ある関数の展開ボタン２１１がクリックされた場合（Ｓ１０１）、関数定義位置データ３０２にアクセスし、その関数の定義位置に関するデータを取得する（Ｓ１１１）。続いて、ソースコード表示部１２３は、そのデータを用いてソースコードファイル群３０１にアクセスし、その関数の内容を取得する（Ｓ１１２）。続いて、ソースコード表示部１２３は、関数呼び出し位置データ３０３にアクセスし、その関数の呼び出し位置に関するデータを取得する（Ｓ１１３）。続いて、ソースコード表示部１２３は、そのデータに基づいて、その関数の表示位置を特定する（Ｓ１１４）。続いて、ソースコード表示部１２３は、その関数の内容を、特定された表示位置に表示する（Ｓ１２１）。続いて、ソースコード表示部１２３は、関数展開データ３０４を登録する（Ｓ１３１）。
【００２６】
ソースコード表示部１２３は、ある関数の展開解除ボタン２１２がクリックされた場合においても（Ｓ１０１）、Ｓ１１１乃至Ｓ１１４の処理を実行する。Ｓ１１１乃至Ｓ１１４の処理に続いて、ソースコード表示部１２３は、その関数の内容を、特定された表示位置から削除する（Ｓ１２２）。続いて、ソースコード表示部１２３は、関数展開データ３０４を登録する（Ｓ１３１）。
【００２７】
（第２実施例）
デバッグ支援装置１０１では、図７のように、デバッグ対象のソースコードの内容が、ソースコード表示部１２３（図１）により、表示部１１２（図１）の画面上のウィンドウ２０１内に表示される。図２と同様である。
【００２８】
デバッグ支援装置１０１では更に、図７のように、ブレークポイントを指定するためのブレークポイント指定マーク２２１を、操作部１１３（図１）等の操作手段による操作により、ウィンドウ２０１内のソースコード中に設置することができる。デバッグ支援装置１０１では、ある位置にブレークポイント指定マーク２２１が設置されると、ブレークポイント設定部１２４（図１）により、その位置にデバッグの際のブレークポイントが設定されることになる。上記ソースコードのデバッグの際には、上記のブレークポイント指定マーク２２１の設置箇所が、上記ソースコードのブレークポイントとなる。
【００２９】
デバッグ支援装置１０１では更に、上記ブレークポイントのブレーク条件が、ブレークポイント設定部１２４により、各関数の展開状況に基づいて自動的に設定される。具体例を示すと、図７では、関数Ａ中の関数Ｂが展開されており、関数Ｂ中の関数Ｘが展開されており、関数Ｘ中にブレークポイント指定マーク２２１が設置されているので、「関数Ａ、関数Ｂ、関数Ｘという流れで関数Ｘが呼び出された場合に、関数Ｘ中のブレークポイントでブレークを発生させる」というブレーク条件が自動的に設定される。即ち、ある関数が展開されているか否かが、その関数の呼び出しがブレーク条件となるか否かに反映されるようになっている。
【００３０】
このように、本実施例では、ブレークポイントを指定する旨の指定操作（ここではブレークポイント指定マーク２２１の設置操作）によりウィンドウ２０１内のソースコード中に指定された指定箇所（ここではブレークポイント指定マーク２２１の設置箇所）に、該ソースコードのデバッグの際のブレークポイントが設定される。よって、本実施例では、関数の構造が複雑なソースコード等についても、関数の内容が見やすいユーザフレンドリなユーザインタフェースにより、ブレークポイントを簡単に設定することができる。
【００３１】
更に、本実施例では、各関数の展開状況に基づいて、上記ブレークポイントのブレーク条件が設定される。よって、本実施例では、ブレーク条件を設定するのに手間が掛かるという従来のデバッガの問題が解消され、複雑なブレーク条件等についても、関数の内容が見やすいユーザフレンドリなユーザインタフェースにおける、各関数の展開操作及び展開解除操作のような簡単な操作により、ブレーク条件を簡単に設定することができる。
【００３２】
以下、以上のブレークポイント設定処理についてデータ処理の側面から説明する。
【００３３】
図１のデバッグ支援装置１０１では、ブレークポイント（ブレークポイント指定マーク２２１）の設置操作が入力されると、当該設置操作の入力位置がブレークポイント設定部１２４に提供される。これに応じて、ブレークポイント設定部１２４は、関数展開データ３０４（図１）を参照して、ブレークポイントの設置操作の入力位置から、ブレークポイントの表示位置（ウィンドウ２０１内における位置）、ブレークポイントの実位置（関数内における位置）、更にはブレーク条件を特定する。そして、ブレークポイント設定部１２４は、ブレークポイント位置データ３０５（図１）の登録を行う一方で、ブレークポイントをウィンドウ２０１内のソースコード中に表示する。ブレークポイント位置データ３０５は、ブレークポイントの位置に係るデータであり、ここでは、ブレークポイントの表示位置及び実位置（更にはブレーク条件）等からなる。ブレークポイント位置データ３０５の具体例を、図８に示す。
【００３４】
ここで、図７と図８とを対比する事にする。図７のブレークポイント指定マーク２２１の表示行は、７行目である。図７では、関数Ａ中で関数Ｂが展開されており、関数Ｂ中で関数Ｘが展開されており、関数Ｘ中の３行目にブレークポイント指定マーク２２１が設置されている。以上に対応して、図８では、ブレークポイントの表示位置が「７行目」、ブレークポイントの実位置が「関数Ｘ中の３行目」、ブレーク条件が「関数Ａ、関数Ｂ、関数Ｘという流れで関数Ｘが呼び出された場合」となっている。
【００３５】
なお、ブレークポイント位置データ３０５においては、ブレークポイントの新規登録、ブレークポイントの更新登録、ブレークポイントの削除、ブレーク条件の有効・無効等を設定可能としてもよい。また、ブレークポイント位置データ３０５においては、ブレークポイントが設置されている関数の展開が解除された場合に、ブレークポイントを有効扱いとするか無効扱いとするかを設定可能としてもよい。本実施例において、複数のブレークポイントは、図８のように、ブレークポイントＩＤを用いて互いに区別される。
【００３６】
図９は、ブレークポイント設定処理に関するフローチャートである。
【００３７】
ブレークポイント設定部１２４は、ブレークポイントの設置操作が入力されると、関数展開データ３０４を参照し、ブレークポイントの設置操作の入力位置から、ブレークポイントの表示位置及び実位置を特定する（Ｓ２０１）。次に、ブレークポイント設定部１２４は、関数展開データ３０４のツリー構造をブレークポイントの設置箇所からさかのぼり、各関数の展開状況、即ち、ブレーク条件を特定する（Ｓ２０２）。次に、ブレークポイント設定部１２４は、ブレークポイントの表示位置及び実位置（更にはブレーク条件）等を、ブレークポイント位置データ３０５として登録する（Ｓ２０３）。次に、ブレークポイント設定部１２４は、ブレークポイントを、ウィンドウ２０１内のソースコード中の所定位置に表示する（Ｓ２０４）。
【００３８】
（第３実施例）
本実施例では、図１のデバッグ支援装置１０１のステップ実行機能について説明する。ステップ実行の具体例としては、ステップイン実行や、ステップアウト実行や、ステップオーバー実行が挙げられる。
【００３９】
ステップイン実行では、プログラムが１ステップずつ（例えば１ソース行ずつ又は１文ずつ）実行され、プログラム中に関数がある場合には、その関数の中に入り処理が進行していく。
【００４０】
ステップアウト実行では、プログラムが１ステップずつ（例えば１ソース行ずつ又は１文ずつ）実行され、プログラム中に関数がある場合には、その関数の中には入らずに処理が進行していく。
【００４１】
ステップオーバー実行では、現在の関数の処理が終わり、その関数の呼び出し元に処理が戻る。
【００４２】
図１のデバッグ支援装置１０１では、デバッグ対象のソースコード（の実行形式プログラム）のステップ実行の際にある関数をステップイン実行の対象とするかステップアウト実行の対象とするか、即ち、ソースコードを１ステップずつ実行する際にある関数の中に入るかどうかが、デバッガ部１２１等により、その関数の展開状況に応じて自動的に判断される。
【００４３】
例えば、図７のようにソースコードが表示されていた場合、展開中の関数Ｂについてはステップイン実行の対象となり、展開解除中の関数Ｃについてはステップアウト実行の対象となる。従って、図７のソースコードが関数Ａの先頭からステップ実行される際に、関数Ｂはステップインされる事になるが、関数Ｃはステップインされない事になる。
【００４４】
このように、本実施例では、デバッグ対象のソースコードに関して、各関数をステップイン実行の対象とするかステップアウト実行の対象とするかを、関数の内容が見やすいユーザフレンドリなユーザインタフェースにおける、各関数の展開操作及び展開解除操作のような簡単な操作により、簡単に設定することができる。なお、本実施例において、各関数の展開状況は、関数展開データ３０４を利用して特定される。
【００４５】
（第４実施例）
図１のデバッグ支援装置１０１では、ウィンドウ２０１内で関数を展開できる階層数の制限が、デバッガ部１２１等により、階層数の制限を設定する旨の設定操作に応じて設定される。
【００４６】
階層数の制限の設定操作は、例えば、ウィンドウ２０１のメニューバーやツールバーで実施できるようにしておく。階層数の制限の具体例としては、階層数の上限値の制限が挙げられる。例えば、階層数の上限値が「３」と設定された場合、図７の関数Ｘ、関数Ｙ、関数Ｚ（階層数「３」の関数）は展開可能となり、図７の関数Ｐ、関数Ｑ（階層数「４」の関数）は展開不能となる。
【００４７】
このように、本実施例では、ウィンドウ２０１内で関数を展開できる階層数の制限が、階層数の制限を設定する旨の設定操作に応じて設定される。これにより、本実施例では、デバッグ支援装置１０１の処理対象となる関数を制限し、デバッグ支援装置１０１の処理速度を向上させる事が可能となっている。
【００４８】
なお、本発明の実施形態には例えば、以下の態様が含まれる。
［１］
ソースコードのデバッグを支援するデバッグ支援装置であって、
デバッグ対象のソースコードの内容に含まれ、前記ソースコードとは異なるファイルで定義されている関数の内容を、第１の所定のデータを用いて、前記ファイルから取得し、
前記ソースコードの内容と、前記関数の内容とが、同じ表示枠内に表示されるように、前記関数の内容を、第２の所定のデータを用いて、前記ソースコードの内容における前記関数の呼び出し位置に表示する、ソースコード表示手段を備えることを特徴とするデバッグ支援装置。
［２］
前記第１の所定のデータは、前記関数の定義位置に係るデータであり、
前記第２の所定のデータは、前記関数の呼び出し位置に係るデータであることを特徴とする［１］に記載のデバッグ支援装置。
［３］
前記ソースコード表示手段は、前記関数を展開する旨の展開操作に応じて、前記関数を展開して表示し、又は前記関数の展開を解除する旨の展開解除操作に応じて、前記関数の展開を解除して表示することを特徴とする［１］又は［２］に記載のデバッグ支援装置。
［４］
操作手段による指定操作により前記表示枠内の前記ソースコード中に指定された指定箇所に、前記ソースコードのデバッグの際のブレークポイントを設定する、ブレークポイント設定手段を備えることを特徴とする［１］乃至［３］のいずれか１つに記載のデバッグ支援装置。
［５］
前記ブレークポイント設定手段は、関数の展開状況に応じて、前記ブレークポイントのブレーク条件を設定することを特徴とする［４］に記載のデバッグ支援装置。
［６］
前記ソースコードを１ステップずつ実行する際に前記関数の中に入るかどうかを、前記関数の展開状況に応じて自動的に判断することを特徴とする［１］乃至［５］のいずれか１つに記載のデバッグ支援装置。
［７］
関数を展開できる階層数の制限を、階層数の制限を設定する旨の設定操作に応じて設定することを特徴とする［１］乃至［６］のいずれか１つに記載のデバッグ支援装置。
［８］
デバッグ対象のソースコードが格納されているファイル及び前記ソースコード用の関数が定義されているファイルを解析し、関数の定義位置に係る情報及び関数の呼び出し位置に係る情報を取得するソースコード解析手段を備えることを特徴とする［１］乃至［７］のいずれか１つに記載のデバッグ支援装置。
［９］
ソースコードのデバッグを支援するデバッグ支援方法であって、
デバッグ対象のソースコードの内容に含まれ、前記ソースコードとは異なるファイルで定義されている関数の内容を、第１の所定のデータを用いて、前記ファイルから取得し、
前記ソースコードの内容と、前記関数の内容とが、同じ表示枠内に表示されるように、前記関数の内容を、第２の所定のデータを用いて、前記ソースコードの内容における前記関数の呼び出し位置に表示することを特徴とするデバッグ支援方法。
［１０］
操作手段による指定操作により前記表示枠内の前記ソースコード中に指定された指定箇所に、前記ソースコードのデバッグの際のブレークポイントを設定することを特徴とする［９］に記載のデバッグ支援方法。
【図面の簡単な説明】
【００４９】
【図１】デバッグ支援装置のシステム構成図である。
【図２】ソースコード表示処理について説明するための図である。
【図３】関数定義位置データの具体例である。
【図４】関数呼び出し位置データの具体例である。
【図５】関数展開データに関する概念図である。
【図６】ソースコード表示処理に関するフローチャートである。
【図７】ブレークポイント設定処理について説明するための図である。
【図８】ブレークポイント位置データの具体例である。
【図９】ブレークポイント設定処理に関するフローチャートである。
【符号の説明】
【００５０】
１０１  デバッグ支援装置
１１１  情報処理部
１１２  表示部
１１３  操作部
１２１  デバッガ部
１２２  ソースコード解析部
１２３  ソースコード表示部
１２４  ブレークポイント設定部
２０１  ウィンドウ
２０２  ボックス
２１１  展開ボタン
２１２  展開解除ボタン
２２１  ブレークポイント指定マーク
３０１  ソースコードファイル群
３０２  関数定義位置データ
３０３  関数呼び出し位置データ
３０４  関数展開データ
３０５  ブレークポイント位置データ
【図１】
2008071044.tif 000003
【図２】
2008071044.tif 000004
【図３】
2008071044.tif 000005
【図４】
2008071044.tif 000006
【図５】
2008071044.tif 000007
【図６】
2008071044.tif 000008
【図７】
2008071044.tif 000009
【図８】
2008071044.tif 000010
【図９】
2008071044.tif 000011