(57)【要約】【課題】  言語毎に固有のデバッガを必要としないデバッグ方法及びデバッグ装置を提供する。【解決手段】  デバッグ対象となるデータの属性に関する情報を、データの言語以外の他の言語と共通な基本属性と、データの言語以外の他の言語と異なる固有の拡張属性とに分割した後、各属性に従った参照処理及び更新処理を行うのみで他の言語を有するデバッガとの間で共通化を図ることにより、言語毎に固有のデバッガを必要としないデバッグ方法及びデバッグ装置の提供を実現することができる。【選択図】  図１
2006185107.tif 000002
【特許請求の範囲】
【請求項１】
デバッグ対象となるデータの属性に関する情報を、前記データの言語以外の他の言語と共通な基本属性と、前記データの言語以外の他の言語と異なる固有の拡張属性とに分割した後、各属性に従った参照処理及び更新処理を行うのみで他の言語を有するデバッガとの間で共通化を図ることを特徴とするデバッグ方法。
【請求項２】
前記参照処理は、前記データの拡張属性が存在するか否かを判別する処理であり、
前記更新処理は、前記データについて拡張属性が存在するか否かを判別した後前記拡張属性が存在する場合には加工して更新し、前記拡張属性が存在しない場合には前記基本属性に従ってそのまま前記データの値を更新する処理であることを特徴とする請求項１記載のデバッグ方法。
【請求項３】
前記参照処理において、前記データの拡張属性が存在する場合には前記データの値、型を前記拡張属性に従って加工し、デバッガに表示し、前記データの拡張属性が存在しない場合にはそのまま前記基本属性と値とをデバッガに表示することを特徴とする請求項２記載のデバッグ方法。
【請求項４】
デバッグの対象となるデータの言語以外の他の言語と共通な基本属性、前記データの言語以外の他の言語と異なる固有の拡張属性、及び値格納領域を有するデータを参照・更新するデバッガコンポーネントと、
前記データの言語以外の他の言語と異なる固有の拡張属性とに分割した後、各属性に従った参照処理及び更新処理を行うのみで他の言語を有するデバッガとの間で共通化を図るように前記デバッガコンポーネントを制御するデバッガと、
を備えたことを特徴とするデバッグ装置。
【請求項５】
前記デバッガコンポーネントは、
前記基本属性を参照する基本属性参照手段と、
前記拡張属性を参照する拡張属性参照手段と、
前記データを参照するデータ参照手段と、
前記データを更新するデータ更新手段とを備えたことを特徴とする請求項４記載のデバッグ装置。
【請求項６】
前記デバッガは、
言語用のデバッガコンポーネントを切り替える言語切替手段と、
前記データの値、型を加工するデータ型情報表示手段と、
を備えたことを特徴とする請求項４または５記載のデバッグ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デバッグ方法及びデバッグ装置に関する。
【背景技術】
【０００２】
デバッグを行う際には、複数言語からなるプログラムに対して、各言語ごとに個々に属性を処理する固有のデバッガを準備した後デバッグを行ったり、各言語毎にシンボリックデバッグを行ったりしていた（例えば、特許文献１参照）。
【特許文献１】特開平０１−０９６７４１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
しかしながら、上述した従来技術では、個々に属性を処理する必要があるため、言語ごとに固有のデバッガが必要となっていた。
そこで、本発明の目的は、上記課題を解決するため、言語毎に固有のデバッガを必要としないデバッグ方法及びデバッグ装置を提供することにある。
【課題を解決するための手段】
【０００４】
上記課題を解決するため、請求項１記載の発明は、デバッグ対象となるデータの属性に関する情報を、前記データの言語以外の他の言語と共通な基本属性と、前記データの言語以外の他の言語と異なる固有の拡張属性とに分割した後、各属性に従った参照処理及び更新処理を行うのみで他の言語を有するデバッガとの間で共通化を図ることを特徴とする。
【０００５】
請求項２記載の発明は、請求項１記載の発明において、前記参照処理は、前記データの拡張属性が存在するか否かを判別する処理であり、前記更新処理は、前記データについて拡張属性が存在するか否かを判別した後前記拡張属性が存在する場合には加工して更新し、前記拡張属性が存在しない場合には前記基本属性に従ってそのまま前記データの値を更新する処理であることを特徴とする。
【０００６】
請求項３記載の発明は、請求項２記載の発明において、前記参照処理において、前記データの拡張属性が存在する場合には前記データの値、型を前記拡張属性に従って加工し、デバッガに表示し、前記データの拡張属性が存在しない場合にはそのまま前記基本属性と値とをデバッガに表示することを特徴とする。
【０００７】
請求項４記載の発明は、デバッグの対象となるデータの言語以外の他の言語と共通な基本属性、前記データの言語以外の他の言語と異なる固有の拡張属性、及び値格納領域を有するデータを参照・更新するデバッガコンポーネントと、前記データの言語以外の他の言語と異なる固有の拡張属性とに分割した後、各属性に従った参照処理及び更新処理を行うのみで他の言語を有するデバッガとの間で共通化を図るように前記デバッガコンポーネントを制御するデバッガとを備えたことを特徴とする。
【０００８】
請求項５記載の発明は、請求項４記載の発明において、前記デバッガコンポーネントは、前記基本属性を参照する基本属性参照手段と、前記拡張属性を参照する拡張属性参照手段と、前記データを参照するデータ参照手段と、前記データを更新するデータ更新手段とを備えたことを特徴とする。
【０００９】
請求項６記載の発明は、請求項４または５記載の発明において、前記デバッガは、  言語用のデバッガコンポーネントを切り替える言語切替手段と、前記データの値、型を加工するデータ型情報表示手段とを備えたことを特徴とする。
ここで、本発明は、言語ごとにデータ属性を基本属性、拡張属性に分けてそれら属性に従った参照処理手段、更新処理手段を提供するのみで他言語とのデバッガ共通化が図れる点に特徴がある。
【発明の効果】
【００１０】
本発明によれば、デバッグ対象となるデータの属性に関する情報を、データの言語以外の他の言語と共通な基本属性と、データの言語以外の他の言語と異なる固有の拡張属性とに分割した後、各属性に従った参照処理及び更新処理を行うのみで他の言語を有するデバッガとの間で共通化を図ることにより、言語毎に固有のデバッガを必要としないデバッグ方法及びデバッグ装置の提供を実現することができる。
【発明を実施するための最良の形態】
【００１１】
本発明に係るデバッグ方法は、デバッグ対象となるデータの属性に関する情報を、データの言語以外の他の言語と共通な基本属性と、データの言語以外の他の言語と異なる固有の拡張属性とに分割した後、各属性に従った参照処理及び更新処理を行うのみで他の言語を有するデバッガとの間で共通化を図ることを特徴とする。
【００１２】
本発明に係るデバッグ方法は、上記構成に加え、前記参照処理は、前記データの拡張属性が存在するか否かを判別する処理であり、更新処理は、データについて拡張属性が存在するか否かを判別した後拡張属性が存在する場合には加工して更新し、拡張属性が存在しない場合には基本属性に従ってそのままデータの値を更新する処理であってもよく、参照処理において、データの拡張属性が存在する場合にはデータの値、型を拡張属性に従って加工し、デバッガに表示し、データの拡張属性が存在しない場合にはそのまま基本属性と値とをデバッガに表示してもよい。
【００１３】
また、本発明に係るデバッグ装置は、デバッグの対象となるデータの言語以外の他の言語と共通な基本属性、データの言語以外の他の言語と異なる固有の拡張属性、及び値格納領域を有するデータを参照・更新するデバッガコンポーネントと、データの言語以外の他の言語と異なる固有の拡張属性とに分割した後、各属性に従った参照処理及び更新処理を行うのみで他の言語を有するデバッガとの間で共通化を図るようにデバッガコンポーネントを制御するデバッガとを備えたことを特徴とする。
【００１４】
本発明に係るデバッグ装置は、上記構成に加え、デバッガコンポーネントは、基本属性を参照する基本属性参照手段と、拡張属性を参照する拡張属性参照手段と、データを参照するデータ参照手段と、データを更新するデータ更新手段とを備えてもよく、デバッガは、言語用のデバッガコンポーネントを切り替える言語切替手段と、データの値、型を加工するデータ型情報表示手段とを備えてもよい。
【００１５】
すなわち、本実施形態の特徴は、データの属性に関する情報を、基本属性と拡張属性に分け、組み合わせて（データに基本属性と拡張属性とを組で付加して）処理することで、他のデバッガを有効に活用することを可能にする点にある。
ここで、基本属性と拡張属性とを組み合わせることにより、他のデバッガを有効活用できる理由について述べる。
デバッガの中核部分を、他のデバッガを活用し、言語固有の部分をデバッガコンポーネント形式で作成し、結合して一つのデバッガとすることが可能なためである。
【実施例】
【００１６】
図１は本発明のデバッグ方法の一実施例を示す概念図であり、データ、デバッガ、及びデバッガコンポーネントの関係を示している。
デバッガ１はデバッガコンポーネント３を制御し、デバッガコンポーネント３はデータ４を参照・更新するようになっている。
デバッガ１は、言語切替手段及びデータ型情報表示手段１２を有している。
言語切替手段は、言語用のデバッガコンポーネントを切り替えるものであり、データ型情報切替手段１２は、データの値、型を加工するものである。
デバッガコンポーネント３は、基本属性参照手段８、拡張属性参照手段９、データ参照手段１０、及びデータ更新手段１１を有している。
基本属性参照手段８は、デバッグ対象となるデータの言語以外の他の言語と共通な基本属性を参照するものである。拡張属性参照手段９は、データの言語以外の他の言語と異なる固有の拡張属性を参照するものである。
基本属性は、そのデータが２進数、浮動小数点数、バイト配列等の中で何に相当するのかを表現し、拡張属性は、その値をどう解釈するかを示すバイト配列である。
値格納領域７は、基本属性に従って、２進数や文字列、バイト配列等を格納する。
データ４は多言語に共通となる基本属性２（２進数やバイト配列、文字列）と、言語固有となる拡張属性３と、値格納領域７とで構成することとし、これらの２つの属性から言語固有のデータ属性を実現することができる。
【００１７】
次に図１を参照して本発明に係るデバッグ方法について述べる。
図１に示すデバッガ１が有する言語切替手段２に従いデバッガコンポーネントを各言語用デバッガコンポーネント３に切り替える。
各言語において、データ４を言語共通である基本属性５と言語固有の拡張属性６にて表現し、デバッグ対象プログラムのデータ４が値格納領域７を有する。
その表現に従い、各言語用デバッガコンポーネント３には、基本属性参照手段８および拡張属性参照手段９、ならびにデータ参照手段１０およびデータ更新手段１１を実装する。
基本属性５には各言語に共通な属性に関する情報を、拡張属性６には各言語に固有の属性に関する情報を格納し、基本属性参照手段７および拡張属性参照手段８にて参照する。
データ参照手段９では、基本属性参照手段７および拡張属性参照手段８にて、得られた基本属性５と拡張属性６に従い、データ名や、その型および値を参照する。
データ更新手段１１では、基本属性参照手段７および拡張属性参照手段８にて、得られた基本属性５と拡張属性６に従い、データの値をデータ型に応じて更新する（２進数を設定すべき場合には、２進数で設定し、バイト配列の場合はバイト配列で更新することを意味し、言語の規則に従う。）。
参照されたデータ名やその型および値については、データ型情報表示手段１２（デバッガ１のウィンドウに表示する処理をいう。）によってデバッガ１に表示される。
基本属性５とは整数型、浮動小数点型、配列、文字列といった多言語においてサポートされているデータ型を示すものであり、拡張属性６とはそれら基本属性５を利用し拡張したデータ型を示すものである。
【００１８】
具体例としては、ＣＯＢＯＬにおける英数字項目や内部１０進数項目、外部１０進数項目は、基本属性５である配列を拡張して実現するため、拡張属性６に桁数や符号の有無などを保持する。
組み込まれた拡張属性参照手段８に従い、基本属性２としての配列が英数字項目なのか、内部１０進数項目なのかを判別し、それぞれに従った処理をデータ参照手段９ならびにデータ更新手段１１で行う（基本属性が配列であり、拡張属性が桁数や符号の有無等である。）。
【００１９】
図２は本発明に係るデバッグ方法を適用したデバッグ装置の一実施例を示すブロック図である。
本デバッグ装置は、各種統括制御するＣＰＵ２０、入力装置２１、出力装置２２、記憶装置（例えば、ハードディスクドライバ、ＲＡＭ）２３、ターゲットプログラムを読み込むためのターゲットプログラム読み込み部２４、読み込んだプログラムをデバッグのために実行するターゲットプログラム実行部２５、実行中のプログラムを停止するターゲットプログラム停止部２６、ターゲットプログラムの実行状態及び挙動を監視するターゲットプログラム監視部２７、デバッグ制御のためのコマンドを可視的に表示するデバッグコマンド表示部２８、及びデバッグ作業者からのデバッグコマンドが入力されるデバッグコマンド入力部２９を備えている。
【００２０】
図３は図１に示したデバッグ方法をさらに詳しく説明するためのフローチャートである。尚、図３に示したフローチャートはデバッグする際のフローチャートであるため、「組み合わせる」点については記載していない。
まず、ＣＰＵ２０（図２参照）はデバッガ１にて対象プログラムを読み込む（ステップＳ１）。
対象プログラムの開発言語情報を取得する（ステップＳ２）。
言語切替手段２にて言語用のデバッガコンポーネント３を初期化する（ステップＳ３）。
メソッドを対象プログラムの構造に従い順に実行する（ステップＳ４）。
各メソッドのデータ４を順に読み込む（ステップＳ５）。
各データ４の基本属性５を基本属性参照手段７にて参照し、データ４の値をデータ参照手段９にて取得する（ステップＳ６）。
データ４の拡張属性６を拡張性参照手段８にて参照し、存在するか否かを判別する（ステップＳ７）。
データ４の拡張属性６が存在する場合（ステップＳ７／ＹＥＳ）には、ステップＳ８に進み、データ４の値、型を拡張属性６に従って、データ型情報表示手段１２によって加工しデバッガ１に表示する。
データ４の拡張属性６が存在しない場合（ステップＳ７／ＮＯ）には、ステップＳ９に進み、そのまま基本属性５と値とをデバッガ１に表示する。
次にデータ４について更新するか否かを判別する（ステップＳ１０）。
データ４について更新する場合（ステップＳ１０／ＹＥＳ）、ステップＳ１１に進み拡張属性６が存在するか否か判別する（ステップＳ１１）。
拡張属性６が存在する場合（ステップＳ１１／ＹＥＳ）、データ更新手段１０にて加工して更新し終了する（ステップＳ１２）。
拡張属性６が存在しない場合（ステップＳ１１／ＮＯ）には基本属性５に従ってそのままデータ４の値を更新して終了する（ステップＳ１３）。
尚、ステップＳ１０でデータ４について更新しない場合（ステップＳ１０／ＮＯ）には終了する。
以上の動作を行うことにより、言語毎に固有のデバッガを必要としないデバッグ方法及びデバッグ装置の提供を実現することができる。
〔効果の説明〕
言語ごとに拡張属性および拡張属性参照手段のみ実装することで他言語とシームレスなデバッグが可能となる。
【図面の簡単な説明】
【００２１】
【図１】本発明のデバッグ方法の一実施例を示す概念図である。
【図２】本発明に係るデバッグ方法を適用したデバッグ装置の一実施例を示すブロック図である。
【図３】図１に示したデバッグ方法をさらに詳しく説明するためのフローチャートである。
【符号の説明】
【００２２】
２０    ＣＰＵ
２１    入力装置
２２    出力装置
２３    記憶装置
２４    ターゲットプログラム読み込み部
２５    ターゲットプログラム実行部
２６    ターゲットプログラム停止部
２７    ターゲットプログラム監視部
２８    デバッグコマンド表示部
２９    デバッグコマンド入力部
【図１】
2006185107.tif 000003
【図２】
2006185107.tif 000004
【図３】
2006185107.tif 000005