JP2003015906A - リモートデバッグ方法および装置 - Google Patents

リモートデバッグ方法および装置

Info

Publication number
JP2003015906A
JP2003015906A JP2001196796A JP2001196796A JP2003015906A JP 2003015906 A JP2003015906 A JP 2003015906A JP 2001196796 A JP2001196796 A JP 2001196796A JP 2001196796 A JP2001196796 A JP 2001196796A JP 2003015906 A JP2003015906 A JP 2003015906A
Authority
JP
Japan
Prior art keywords
breakpoint
evaluation board
hit
program
attribute database
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2001196796A
Other languages
English (en)
Inventor
Isao Minematsu
勲 峯松
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2001196796A priority Critical patent/JP2003015906A/ja
Priority to US10/155,070 priority patent/US20030004671A1/en
Publication of JP2003015906A publication Critical patent/JP2003015906A/ja
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Preventing errors by testing or debugging software
    • G06F11/362Software debugging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

(57)【要約】 【課題】 マスター・スレーブマルチプロセッサ構成の
デバッグにおいて、ブレークポイントヒット時の評価ボ
ード上の状態をより正確に反映する。 【解決手段】 リモートデバッグ方法は、評価ボードで
実行されるプログラム中に予めブレークポイントを設定
するステップと、ブレークポイントにヒットしたときに
評価ボード上のメモリに対して行なうべき処理を、予め
評価ボード上または開発用端末装置上に準備されたブレ
ークポイント属性用データベースに登録するステップ
と、評価ボード上でプログラムの実行を開始するステッ
プ190と、プログラムの実行においてブレークポイン
トにヒットしたこと(192)に応答して、ブレークポ
イント属性用データベースを参照し(194)、評価ボ
ード上のメモリに対して行なうべき処理を評価ボード上
の処理部に実行させるステップ196とを含む。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】この発明は、マルチプロセッ
サシステムなどのように、主プロセッサと、この主プロ
セッサと並列に動作可能な他の処理装置(たとえばコプ
ロセッサ、DMAC(Direct Memory Access Controlle
r)とからなるシステムで動作するソフトウェアのデバ
ッグ方法および装置に関し、特に、組込み用途に用いら
れ、マスタ−スレーブ構成のシステムで動作するソフト
ウェアを開発用端末装置を用いてデバッグする、いわゆ
るリモートデバッグ方法および装置に関する。
【0002】
【従来の技術】従来、組込み用途においては、単一のプ
ロセッサと、RAM(Random AccessMemory)およびR
OM(Read-Only Memory)からなるメモリ、ならびにロ
ジック部によってボード(システム)が構成されること
が一般的であった。しかし近年では、演算処理が多様化
したこと、集積度が向上したことを背景にして、複数の
プロセッサをボード上(またはボード上に搭載される1
チップ内)に集積する、いわゆるマルチプロセッサ構成
を採用した例が増加している。
【0003】マルチプロセッサ方式は、用いられるプロ
セッサの組合わせ方の観点から二つの型に分類される。
第1の型は同一のプロセッサを複数個、対等の関係で利
用した並列型である。第2の型は、主従の役割を明確に
して複数個のプロセッサを用いる、いわゆるマスタ−ス
レーブ型である。
【0004】また、マルチプロセッサ方式は、プロセッ
サ間の接続のし方の観点からも二つの型に分類される。
第1の型は専用の信号線インタフェースを用いてプロセ
ッサ間を接続する密結合型である。第2の型は、バスま
たはスイッチを介してプロセッサを結合する疎結合型で
ある。
【0005】また、マルチプロセッサシステムの構成例
として、これらの典型的な型ではなくこれらの中間的な
構成をとった例、またはこれらを互いに組合わせた例も
多い。
【0006】マルチプロセッサシステムでは、複数のプ
ロセッサ上でプログラムが動作することで全体の機能が
実現される。したがってその特性上、プログラムのデバ
ッグが本質的に困難であるという問題がある。この問題
を解決するために、プロセッサのデバッグ用機能、デバ
ッガ、プロセッサ間インタフェースなどに改善の余地が
認められる。その一例は、特開平10−187486号
公報に開示されたプロセッサ間インタフェースである。
このプロセッサ間インタフェースは、並列型・疎結合型
のマルチプロセッサ構成においてのものである。
【0007】組込み用途のソフトウェアのデバッグにお
いて、プロセッサの搭載されたボードをデバッグ対象と
して、エンジニアリングワークステーションなどの開発
用端末装置を用いてデバッグを行なうことが多い.その
ようなデバッグをリモートデバッグ、そこで用いられる
デバッガプログラムをリモートデバッガと呼ぶ。
【0008】リモートデバッガは、プログラマが操作す
る開発用端末装置で動作してマンマシンインタフェース
を担当するフロントエンド部と、ボードに常駐するレジ
デントモニタ部との二つのモジュールを含む。これらモ
ジュールはそれぞれ、開発用端末装置とボードの通信機
能(たとえばRS232C,Ethernet(R),
JTAG)を利用して互いにコマンドやコマンドの実行
結果を交信する。
【0009】デバッガの中心的機能として、ブレークポ
イントを用いたデバッグ機能がある。ブレークポイント
によるデバッグ機能とは、指定した番地の命令にプログ
ラムの実行が達したときにプログラムの実行を停止させ
る機能である。このときの番地を「ブレークポイント」
と呼ぶ。一般的に、ブレークポイントが設定される際に
は、デバッガは、デバッグ対象プログラムの指定された
番地を特殊な命令に置換する。プログラムを実行して実
行命令の番地がブレークポイントに達した時には、この
置換された特殊な命令に対応したソフトウェア割込みの
ハンドラに制御が分岐する。ハンドラは、デバッグ対象
プログラムのコンテキストを保存して制御をレジデント
モニタ部に移す。レジデントモニタ部は、命令実行位置
がブレークポイントに達したことをフロントエンドに通
知し、フロントエンドに制御が移りユーザがデバッグ作
業を行なうことができる。
【0010】引き続きユーザのコマンドによってプログ
ラムを実行する場合には、レジデントモニタ部が、デバ
ッグ対象プログラムのコンテキストを復元し、ソフトウ
ェア割込みからの復帰命令によってデバッグ対象プログ
ラムの実行を続行する。
【0011】
【発明が解決しようとする課題】リモートデバッグ方式
では、ボードに搭載されたメモリマップの入出力デバイ
スをデバッグする際には、ユーザがブレークを検出して
から入出力デバイスの状態を参照するためにメモリの参
照機能を用いても、ブレークした瞬間からのレイテンシ
が生ずる。そのため、ブレークポイントに達したときの
状態を正確に知ることができずデバッグが困難になると
いう問題があった。
【0012】こうした問題は、DMA(Direct Memory
Access)コントローラなどの通常の入出力デバイスを操
作するソフトウェアのデバッグだけでなく、疎結合型の
マルチプロセッサシステムでも同様に生ずる。特にマス
タ−スレーブ型のマルチプロセッサシステムでは、マス
タで実行されているプログラムがブレークポイントに達
しても、スレーブで実行されているプログラムの実行が
すぐには停止せず、そのためシステム全体のデバッグが
困難になるという問題がある。
【0013】したがって、本発明の主たる目的は、マス
タ−スレーブ型のマルチプロセッサシステムにおいて、
ブレークポイントヒット時の評価ボード上の状態をより
正確にデバッグに反映することができるリモートデバッ
グ方法を提供することである。
【0014】
【課題を解決するための手段】本発明のある局面にかか
るリモートデバッグ方法は、プロセッサを含むマスタ−
スレーブ構成の複数処理部を有する評価ボードで実行さ
れるプログラムを、評価ボードと接続される開発用端末
装置を用いてデバッグするためのリモートデバッグ方法
であって、評価ボードで実行されるプログラム中に予め
ブレークポイントを設定するステップと、ブレークポイ
ントにヒットしたときに評価ボード上のメモリに対して
行なうべき処理を、予め評価ボード上または開発用端末
装置上に準備されたブレークポイント属性用データベー
スに登録するステップと、評価ボード上でプログラムの
実行を開始するステップと、プログラムの実行において
ブレークポイントにヒットしたことに応答して、ブレー
クポイント属性用データベースを参照し、評価ボード上
のメモリに対して行なうべき処理を評価ボード上の処理
部に実行させるステップとを含む。
【0015】ブレークポイントにヒットしたときに行な
うべき処理を予めブレークポイント属性用データベース
に登録しておき、ブレークポイントヒット時にはこのデ
ータベースから処理内容を読出して実行する。ブレーク
ポイントヒット時に改めて利用者が処理内容を指示する
場合と比較して、ブレークポイントヒット時から当該ブ
レークポイントで実行すべきデバッグ作業が行なわれる
までの遅延時間が短くなる。その結果、ブレークポイン
トヒット時における評価ボード上の状態をより正確にデ
バッグ作業に反映でき、デバッグが容易になるという効
果がある。
【0016】好ましくは、ブレークポイント属性用デー
タベースは、評価ボード上に実装される。
【0017】評価ボード上に実装されることで、ブレー
クポイントヒット時に開発用端末装置と通信を行なう必
要がなくなる。通信のためのオーバヘッドが軽くなるの
で、ブレークポイントヒット時から当該ブレークポイン
トで実行すべきデバッグ作業が行なわれるまでの遅延時
間が短くなる。その結果、ブレークポイントヒット時に
おける評価ボード上の状態をより正確にデバッグ作業に
反映でき、デバッグが容易になる。
【0018】また別の例では、ブレークポイント属性用
データベースは、開発用端末装置上に実装される。
【0019】開発用端末装置上にブレークポイント属性
用データベースを設けるので、評価ボード上に設ける場
合と比較して評価ボード上側ではブレークポイントヒッ
ト時に開発用端末装置と通信さえ実行できる機能を実現
するだけでよい。評価ボード上のデバッグのためのリモ
ートレジデント部を小さくでき、評価ボードの設計が容
易になるという効果がある。
【0020】さらに好ましくは、登録するステップは、
ブレークポイントにヒットしたときにアクセスすべき評
価ボード上のメモリのアドレスを、予め評価ボード上ま
たは開発用端末装置上に準備されたブレークポイント属
性用データベースに登録するステップを含み、実行させ
るステップは、プログラムの実行においてブレークポイ
ントにヒットしたことに応答して、ブレークポイント属
性用データベースを参照し、ブレークポイント属性用デ
ータベースから読出された評価ボード上のメモリのアド
レスのデータを読出して、読出されたデータを開発用端
末装置に通知する処理を評価ボード上の処理部に実行さ
せるステップと、開発用端末装置に通知されたデータを
出力手段上に出力するステップとを含む。
【0021】ブレークポイントヒット時に、予めブレー
クポイント属性用データベースに登録されていた、評価
ボード上のメモリのアドレスからデータを読出して表示
することができる。ヒット後、データの読出までに要す
る時間を短くすることができるため、ブレークポイント
ヒット時の評価ボード上の状態をより正確に知ることが
できる。その結果、評価ボードのデバッグが容易になる
という効果がある。
【0022】別の好ましい例では、登録するステップ
は、ブレークポイントにヒットしたときにアクセスすべ
き評価ボード上のメモリのアドレスと、当該アドレスに
書込むべきデータとを、予め評価ボード上または開発用
端末装置上に準備されたブレークポイント属性用データ
ベースに登録するステップを含み、実行させるステップ
は、プログラムの実行においてブレークポイントにヒッ
トしたことに応答して、ブレークポイント属性用データ
ベースを参照し、ブレークポイント属性用データベース
から読出された評価ボード上のメモリのアドレスに、ブ
レークポイント属性用データベースから読出されたデー
タを書込む処理を評価ボード上の処理部に実行させるス
テップを含む。
【0023】ブレークポイントヒット時に、予めブレー
クポイント属性用データベースに登録されていた、評価
ボード上のメモリのアドレスに、ブレークポイント属性
用データベースに登録されていたデータを書込むことが
できる。ヒット後、データの書込までに要する時間を短
くすることができるため、ブレークポイントヒット時の
評価ボード上の状態をより正確にデバッグ作業に反映さ
せることができる。その結果、評価ボードのデバッグが
容易になるという効果がある。
【0024】さらに他の好ましい例では、登録するステ
ップは、開発用端末装置において利用者から受取った指
示に基づいて、ブレークポイントにヒットしたときに評
価ボード上の処理部に実行させるべき処理部依存の命令
列を生成し、予め評価ボード上に準備されたブレークポ
イント属性用データベースに登録するステップを含み、
実行させるステップは、プログラムの実行においてブレ
ークポイントにヒットしたことに応答して、ブレークポ
イント属性用データベースを参照し、ブレークポイント
属性用データベースから読出された処理部依存の命令列
を評価ボード上の処理部に与えて実行するステップを含
む。
【0025】ブレークポイントヒット時に行なうべき処
理を、処理内容ではなく処理部依存の命令列に変換して
登録しておき、ブレークポイントヒット時にはこの命令
列を評価ボード上の処理部に直接に実行させることがで
きる。ブレークポイントヒット時にデバッグのために行
なう処理がより高速に実行されるので、ブレークポイン
トヒット時からデバッグのための処理が実行されるまで
の遅延時間がより短くなる。ヒット後、データの読出ま
でに要する時間を短くすることができるため、ブレーク
ポイントヒット時の評価ボード上の状態をより正確に知
ることができる。その結果、評価ボードのデバッグが容
易になるという効果がある。
【0026】本発明のある局面にかかるリモートデバッ
グ方法においては、処理部依存の命令列は、処理部を構
成するプロセッサの機械語である。
【0027】ブレークポイントヒット時に評価ボード上
の処理部が実行する処理が、その機械語として予めデー
タベースに登録されている。ブレークポイントヒット時
の処理が高速に行なえ、ブレークポイントヒット時の評
価ボード上の状態をより正確に知ることができる。その
結果、評価ボードのデバッグが容易になるという効果が
ある。
【0028】本発明の他の局面にかかるリモートデバッ
グ方法においては、ブレークポイントを設定するステッ
プは、開発用端末装置においてブレークポイントを特定
する情報を利用者から受取るステップと、評価ボード上
のデバッグ対象プログラムの、ブレークポイントを特定
する情報に対応する命令を、ブレークポイントヒット時
の処理を行なうハンドラに制御を分岐させる分岐命令に
置換するステップとを含む。
【0029】ブレークポイントヒット時の処理を実行す
るハンドラを準備しておき、ブレークポイントヒット時
にはその分岐命令によってそのハンドラに処理を分岐さ
せる。ブレークポイントヒット時の処理が簡単かつ高速
となり、ブレークポイントヒット時の評価ボード上の状
態をより正確に知ることができる。その結果、評価ボー
ドのデバッグが容易になるという効果がある。
【0030】本発明のある局面にかかるリモートデバッ
グ装置は、プロセッサを含むマスタ−スレーブ構成の複
数処理部を有する評価ボードで実行されるプログラム
を、評価ボードと接続される開発用端末装置を用いてデ
バッグするためのリモートデバッグ装置であって、評価
ボードで実行されるプログラム中に予めブレークポイン
トを設定するための手段と、ブレークポイントにヒット
したときに評価ボード上のメモリに対して行なうべき処
理を、予め評価ボード上または開発用端末装置上に準備
されたブレークポイント属性用データベースに登録する
ための手段と、評価ボード上でプログラムの実行を開始
するための手段と、プログラムの実行においてブレーク
ポイントにヒットしたことに応答して、ブレークポイン
ト属性用データベースを参照し、評価ボード上のメモリ
に対して行なうべき処理を評価ボード上の処理部に実行
させるための手段とを含む。
【0031】ブレークポイントにヒットしたときに行な
うべき処理を予めブレークポイント属性用データベース
に登録しておき、ブレークポイントヒット時にはこのデ
ータベースから処理内容を読出して実行する。ブレーク
ポイントヒット時に改めて利用者が処理内容を指示する
場合と比較して、ブレークポイントヒット時から当該ブ
レークポイントで実行すべきデバッグ作業が行なわれる
までの遅延時間が短くなる。その結果、ブレークポイン
トヒット時における評価ボード上の状態をより正確にデ
バッグ作業に反映でき、デバッグが容易になるという効
果がある。
【0032】好ましくは、ブレークポイント属性用デー
タベースは、評価ボード上に実装される。
【0033】評価ボード上に実装されることで、ブレー
クポイントヒット時に開発用端末装置と通信を行なう必
要がなくなる。通信のためのオーバヘッドが軽くなるの
で、ブレークポイントヒット時から当該ブレークポイン
トで実行すべきデバッグ作業が行なわれるまでの遅延時
間が短くなる。その結果、ブレークポイントヒット時に
おける評価ボード上の状態をより正確にデバッグ作業に
反映でき、デバッグが容易になる。
【0034】また別の例では、ブレークポイント属性用
データベースは、開発用端末装置上に実装される。
【0035】開発用端末装置上にブレークポイント属性
用データベースを設けるので、評価ボード上に設ける場
合と比較して評価ボード上側ではブレークポイントヒッ
ト時に開発用端末装置と通信さえ実行できる機能を実現
するだけでよい。評価ボード上のデバッグのためのリモ
ートレジデント部を小さくでき、評価ボードの設計が容
易になるという効果がある。
【0036】さらに好ましくは、登録するための手段
は、ブレークポイントにヒットしたときにアクセスすべ
き評価ボード上のメモリのアドレスを、予め評価ボード
上または開発用端末装置上に準備されたブレークポイン
ト属性用データベースに登録するための手段を含み、実
行させるための手段は、プログラムの実行においてブレ
ークポイントにヒットしたことに応答して、ブレークポ
イント属性用データベースを参照し、ブレークポイント
属性用データベースから読出された評価ボード上のメモ
リのアドレスのデータを読出して、読出されたデータを
開発用端末装置に通知する処理を評価ボード上の処理部
に実行させるための手段と、開発用端末装置に通知され
たデータを出力手段上に出力するための手段とを含む。
【0037】ブレークポイントヒット時に、予めブレー
クポイント属性用データベースに登録されていた、評価
ボード上のメモリのアドレスからデータを読出して表示
することができる。ヒット後、データの読出までに要す
る時間を短くすることができるため、ブレークポイント
ヒット時の評価ボード上の状態をより正確に知ることが
できる。その結果、評価ボードのデバッグが容易になる
という効果がある。
【0038】別の好ましい例では、登録するための手段
は、ブレークポイントにヒットしたときにアクセスすべ
き評価ボード上のメモリのアドレスと、当該アドレスに
書込むべきデータとを、予め評価ボード上または開発用
端末装置上に準備されたブレークポイント属性用データ
ベースに登録するための手段を含み、実行させるための
手段は、プログラムの実行においてブレークポイントに
ヒットしたことに応答して、ブレークポイント属性用デ
ータベースを参照し、ブレークポイント属性用データベ
ースから読出された評価ボード上のメモリのアドレス
に、ブレークポイント属性用データベースから読出され
たデータを書込む処理を評価ボード上の処理部に実行さ
せるための手段を含む。
【0039】ブレークポイントヒット時に、予めブレー
クポイント属性用データベースに登録されていた、評価
ボード上のメモリのアドレスに、ブレークポイント属性
用データベースに登録されていたデータを書込むことが
できる。ヒット後、データの書込までに要する時間を短
くすることができるため、ブレークポイントヒット時の
評価ボード上の状態をより正確にデバッグ作業に反映さ
せることができる。その結果、評価ボードのデバッグが
容易になるという効果がある。
【0040】さらに他の好ましい例では、登録するため
の手段は、開発用端末装置において利用者から受取った
指示に基づいて、ブレークポイントにヒットしたときに
評価ボード上の処理部に実行させるべき処理部依存の命
令列を生成し、予め評価ボード上に準備されたブレーク
ポイント属性用データベースに登録するための手段を含
み、実行させるための手段は、プログラムの実行におい
てブレークポイントにヒットしたことに応答して、ブレ
ークポイント属性用データベースを参照し、ブレークポ
イント属性用データベースから読出された処理部依存の
命令列を評価ボード上の処理部に与えて実行するための
手段を含む。
【0041】ブレークポイントヒット時に行なうべき処
理を、処理内容ではなく処理部依存の命令列に変換して
登録しておき、ブレークポイントヒット時にはこの命令
列を評価ボード上の処理部に直接に実行させることがで
きる。ブレークポイントヒット時にデバッグのために行
なう処理がより高速に実行されるので、ブレークポイン
トヒット時からデバッグのための処理が実行されるまで
の遅延時間がより短くなる。ヒット後、データの読出ま
でに要する時間を短くすることができるため、ブレーク
ポイントヒット時の評価ボード上の状態をより正確に知
ることができる。その結果、評価ボードのデバッグが容
易になるという効果がある。
【0042】本発明のある局面にかかるリモートデバッ
グ装置においては、処理部依存の命令列は、処理部を構
成するプロセッサの機械語である。
【0043】ブレークポイントヒット時に評価ボード上
の処理部が実行する処理が、その機械語として予めデー
タベースに登録されている。ブレークポイントヒット時
の処理が高速に行なえ、ブレークポイントヒット時の評
価ボード上の状態をより正確に知ることができる。その
結果、評価ボードのデバッグが容易になるという効果が
ある。
【0044】本発明の他の局面にかかるリモートデバッ
グ装置においては、ブレークポイントを設定するための
手段は、開発用端末装置においてブレークポイントを特
定する情報を利用者から受取るための手段と、評価ボー
ド上のデバッグ対象プログラムの、ブレークポイントを
特定する情報に対応する命令を、ブレークポイントヒッ
ト時の処理を行なうハンドラに制御を分岐させる分岐命
令に置換するための手段とを含む。
【0045】ブレークポイントヒット時の処理を実行す
るハンドラを準備しておき、ブレークポイントヒット時
にはその分岐命令によってそのハンドラに処理を分岐さ
せる。ブレークポイントヒット時の処理が簡単かつ高速
となり、ブレークポイントヒット時の評価ボード上の状
態をより正確に知ることができる。その結果、評価ボー
ドのデバッグが容易になるという効果がある。
【0046】
【発明の実施の形態】[第1の実施の形態]図1に、本
発明の1実施の形態にかかるリモートデバッグの対象と
なるマルチプロセッサシステムの構成例の機能ブロック
図を示す。図1を参照して、このマルチプロセッサシス
テム50は、デバッグ対象のプログラムを実行するプロ
セッサ(MCU)52と、このMCU52が接続された
バス54と、バス54に接続され、他のエンジニアリン
グワークステーション等の上で動作するリモートデバッ
ガとの間の通信のための通信インタフェース56と、バ
ス54に接続されたROM62およびRAM64と、バ
ス54に接続されたDMAC58と、バス54に接続さ
れたコプロセッサ60と、バス54に接続され、ボード
外部との入出力を司るバスインタフェース(BusI/
F)66とを含む。
【0047】MCU52は、通常のブレークポイントを
実現する機能を持つ。すなわちMCU52は、(1)ソ
フトウェア割込み発生用命令、(2)ソフトウェア割込
みから復帰する命令、および(3)1命令実行を行なう
動作モード(シングルステップモード)を備える。
【0048】図2を参照して、コプロセッサ60は、M
CU52との間のインタフェースを提供するSIF(Se
rial Interface)部70と、命令を記憶するための命令
用ローカルメモリ74と、データを記憶するためのデー
タ用ローカルメモリ76と、算術論理演算部、メモリア
クセス制御部、およびPC制御部を含んだコア部72と
を含む。
【0049】図3に、コプロセッサ60のSIF部70
に実装される制御レジスタ、ならびに命令用およびデー
タ用ローカルメモリ74、76をMCU52側から見た
ときのメモリマップを示す。このコプロセッサ60は、
MCU52側から見ると、汎用のバスを介してメモリマ
ップデバイスとして動作する。図3を参照して、このメ
モリマップの先頭アドレス部分には、コプロセッサの動
作の参照と制御を行なうための、SIF部70に設けら
れたHALT_CNTレジスタが割当てられ、その続き
には同じくSIF部70に設けられた、コプロセッサ6
0のプログラムカウンタ(PC)の設定および読出に用
いられるPC_CNTレジスタが割当てられている。
【0050】MCU52は、HALT_CNTレジスタ
を介して、コプロセッサの動作の参照と制御とを行な
う。具体的には、MCUは、コプロセッサの起動を行な
う場合にはHALT_CNTレジスタに1を書きこみ、
停止させるときにはHALT_CNTレジスタに0を書
きこむ。HALT_CNTレジスタに0が書きこまれる
とコプロセッサの動作は強制的に停止される。MCU5
2からHALT_CNTレジスタを読出す場合、1であ
ればコプロセッサ60は動作中、0であればコプロセッ
サは停止中である。
【0051】また、PC_CNTレジスタに値を書きこ
むことによってコプロセッサ60の実行開始PCを設定
することができる。また、コプロセッサ60の停止中に
は、PC_CNTレジスタから、次に実行されるPC値
を読出すことができる。
【0052】図1〜3に示されるマルチプロセッサシス
テムでは、MCU52は、コプロセッサ60を起動した
後は、自己が動作している間も、コプロセッサ60の動
作の完了を待つ必要がない。したがって、MCU52と
コプロセッサ60とは、並列(同時)動作可能な、マス
タ−スレーブ型で且つ疎結合型のマルチプロセッサシス
テムを構成している。
【0053】図4に、本発明の第1の実施の形態にかか
るマルチプロセッサシステムのデバッグシステム全体の
構成図を示す。図4を参照して、このシステムは、開発
用端末装置(以下単に「開発端末」と呼ぶ。)80と、
通信路84によって開発端末80に接続されるターゲッ
トボード82とを含む。このターゲットボード82が、
図1に示すマルチプロセッサシステム50に相当する。
【0054】開発端末80では、デバッガのフロントエ
ンド部が動作する。フロントエンド部は、プログラマか
らのコマンド操作の受付、ターゲットボード82で実行
されるソフトウェアの状態表示などを行なう。ターゲッ
トボード82では、デバッグ対象のプログラムが実行さ
れるとともに、デバッガのレジデントモニタ部が常駐す
る。開発端末80とターゲットボード82との間では、
通信路84と各々に設けられた通信I/Fとを介して種
々の通信が行なわれる。
【0055】本実施の形態のデバッグシステムが備える
コマンドの一覧を図5に示す。図5では、左側の列にコ
マンド名が、右側の列にそのコマンドの機能が、それぞ
れ示されている。
【0056】たとえばアドレスを指定してbreakコ
マンドを発行することにより、そのアドレスをブレーク
ポイントに設定することができる。breakコマンド
で設定されたブレークポイントには一連の番号(識別番
号)が割当てられる。その識別番号を引数の1つとし
て、ブレークポイントの属性として、そのブレークポイ
ントがヒットした際の動作をatbreakコマンドで
指定することができる。
【0057】atbreakコマンドの用法は以下のと
おりである。atbreak n address (value) (size)ここ
で、引数は最初から順番にブレークポイントの番号(識
別番号)n、読出/書込の対象となるメモリのアドレス
address、書込時の書込値value、およびメ
モリの読書のサイズsizeである。かっこを伴う引数
は、その引数が省略可能であることを示す。引数val
ueが省略されたときには、ブレークポイントnで、引
数addressで指定されたアドレスからメモリの値
の読出が行なわれる。引数valueが指定された場合
には、引数addressで指定されたアドレスに引数
valueの値を書込む。引数sizeが省略されたと
きには、デフォルト値である4バイトが読書きのサイズ
に指定されたものとみなされる。
【0058】図6に、開発端末80のフロントエンド部
に実装される、atbreakコマンドを実現するため
の機能をブロック図形式で示す。図6を参照して、この
開発端末80は、通信路84に接続される通信I/F1
02と、プログラマとの対話形式で種々の操作を行なっ
たり、コマンドおよびデータの入出力を行なったりする
ためのモニタ96および入力部98と、通信I/F10
2、モニタ96および入力部98に接続され、プログラ
マの指示に応じてターゲットボードでのプログラムの実
行を制御するためのプログラム実行部90と、通信I/
F102、モニタ96および入力部98に接続され、プ
ログラマの指示にしたがってターゲットボード上で実行
されるプログラムにブレークポイントを設定する処理を
行なうためのブレークポイント設定部92と、ブレーク
ポイントにヒットしたときにターゲットボード側で行な
うべき処理(本明細書ではこれをブレークポイントの
「属性」と呼ぶ。)を各ブレークポイントごとに記憶す
るためのブレークポイント属性データベース(DB)1
00と、ブレークポイント設定部92、モニタ96およ
び入力部98に接続され、各ブレークポイントが設定さ
れるごとに、そのブレークポイントの属性をプログラマ
から受けてブレークポイント属性DB100に格納する
ためのブレーク時処理登録部94とを含む。
【0059】図7を参照して、ターゲットボード82
は、MCUなどからなるプログラム実行部114と、プ
ログラム実行部114がプログラムを実行する際の命令
のアドレスを指定するプログラムカウンタ(PC)11
2と、プログラム実行部114が実行するプログラム1
30を格納する命令メモリ116と、データメモリ12
2を含む。命令メモリ116、および、データメモリ1
22はバス142と接続される。
【0060】一方、ターゲットボード82上で動作する
デバッガのレジデントモニタ部は、通信路84に接続さ
れる通信I/F56と、通信I/F56に接続され、開
発端末80からの指示にしたがってPC112にプログ
ラムカウンタ値を設定してプログラム実行部114にプ
ログラム実行を指示するためのPC設定部110と、通
信I/F56に接続され、プログラム130のうち、開
発端末80からブレークポイントとして指示されたアド
レスの命令を特定のブレークポイント命令132に置換
するとともに、置換に先だってプログラムバックアップ
120をとる処理を行なうための置換処理部118とを
含む。
【0061】図8を参照して、さらに、レジデントモニ
タ部は、通信I/F56に接続され、ブレークポイント
命令132をプログラム実行部114が実行することに
より起動され、データメモリ122内のHALT_CN
Tレジスタに相当する記憶位置にデータを書込んだり、
データを読出したりするデバッグ処理を行なうための処
理ハンドラ140とを含む。
【0062】図9に、ブレークポイントを設定する際の
開発端末80上のデバッガのフロントエンド部で行なわ
れる処理を示す。図9を参照して、まず入力されたブレ
ークポイントの識別番号の妥当性、メモリアドレスのア
ラインメントなどのような、入力パラメータのチェック
を行なう(170)。もしパラメータが妥当なものでな
ければ処理を終了する。パラメータが妥当なものであれ
ば制御はステップ172に進む。
【0063】ステップ172では、指定されたブレーク
ポイントの識別番号と、そのブレークポイントと関連付
けられた、ヒット時のメモリの読書き動作を開発端末8
0内の内部記憶領域に割当てられたブレークポイント属
性DB100に登録する。
【0064】続いてステップ174では、レジデントモ
ニタ部の置換処理部118に対して、このブレークポイ
ント識別番号、およびブレークポイント命令のアドレス
を通知する。そして、レジデントモニタ部の置換処理部
118から返答があるまで待機し(176)、レジデン
トモニタ部から返答があれば処理を終了する。
【0065】図10を参照して、このときのレジデント
モニタ部で行なわれる処理は以下のとおりである。ま
ず、デバッグの対象として指定されたプログラムをバッ
クアップする(180)。続いて、指定番地の命令をブ
レークポイント命令に置換する(182)。ブレークポ
イント命令は、実際にはそのブレークポイントの命令に
対するハンドラに制御を分岐するソフトウェア割込みを
発生する命令である。そして処理が完了したことを開発
端末80に通知して(184)処理を終了する。
【0066】以上の処理によって、デバッグのための準
備が整ったことになる。実際のデバッグの際には以下の
ような処理が行なわれる。図11を参照して、開発端末
80上のフロントエンド部ではまず、プログラマの指示
にしたがって、デバッグ対象のプログラムの開始アドレ
スを指定して、レジデントモニタ部に対してプログラム
の実行開始を通知する(190)。そしてレジデントモ
ニタ部からの返答を待つ(192)。レジデントモニタ
部のPC設定部110は、指定された開始アドレスをP
C112に設定し、プログラム実行部114にプログラ
ムの実行を開始させる。プログラム実行部114が実行
するプログラムがブレークポイントに達すると(図8の
参照符号152)、置換されたソフトウェア割込発生用
命令132が実行され(154)、制御が処理ハンドラ
に分岐して(156)フロントエンド部にその旨と、ヒ
ットしたブレークポイントの識別番号を通知して来る。
【0067】レジデントモニタ部からブレークポイント
に達した旨の返答があると、返された識別番号をキーと
して、ブレークポイント属性DB100をアクセスし
て、ヒット時の動作に関する情報を取出す(194)。
そして、取り出されたヒット時の動作をレジデントモニ
タ部に通知する(196)。レジデントモニタ部は、こ
の動作に対応した処理を行なうが、仮に動作がメモリか
らの読出のときには、読出されたメモリの内容をフロン
トエンド部に通知してくる。
【0068】ステップ198では、フロントエンド部で
は、ヒット時の動作がメモリ読出か否かを判定し、メモ
リ読出でない場合には処理を終了する。ヒット時の動作
がメモリ読出であれば、レジデントモニタ部からメモリ
の読出結果の通知があるまで待機し(200)、通知が
あればその内容をモニタ96に表示して(202)処理
を終了する。
【0069】一方、このとき、ブレークポイントにヒッ
トしたときにレジデントモニタ部側で実行される処理は
図12に示されるとおりである。ブレークポイント設定
時に元の命令と置換されたソフトウェア割込発生用命令
132の実行に伴い、ソフトウェア割込みハンドラ14
0に制御が自動的に分岐する(図8の参照符号152、
154、156の順序)ことによってこの処理が開始さ
れる。ステップ210を実現する関数は、このハンドラ
の先頭に配置されている。つまり、その関数はレジデン
トモニタ部の一部として実装されている。ステップ21
0で、デバッグ対象ソフトウェアのコンテキスト(レジ
スタの内容)を、レジデントモニタ部に割当てられたデ
ータメモリ122の一部に保存する。続いて、フロント
エンド部に対して、ブレークポイントにヒットしたこ
と、およびその識別番号を通知する(211)。この通
知によりフロントエンド部に制御が移る(図11のステ
ップ194)。そして、この通知に応答してフロントエ
ンド部から通知される、ヒット時の動作種類、属性を受
信する(212)。必要な情報を受信すると、その情報
によって決まる処理を行なう(214)。すなわち、ヒ
ット時の動作がメモリの所定アドレスからの読出であれ
ばその内容を読出し、所定アドレスへの書込みであれば
フロントエンド部から通知されたデータをメモリのその
アドレスに書込む処理を行なう(図8における参照符号
158)。
【0070】続いて、実行した処理がメモリの読出か否
かを判定し(216)、処理が読出でなければ処理を終
了する。処理が読出であれば、読出結果をフロントエン
ド部に通知して(218)、処理を終了する。
【0071】以上がこの第1の実施の形態のシステムに
おけるデバッグ動作の概略である。図13に、本実施の
形態のデバッガの操作および出力の例220を示す。図
13において、太字はプログラマの入力を示し、そのほ
かはデバッガの出力を示す。図13を参照して、loa
dコマンド222によりデバッグ対象のプログラムが読
みこまれる。続くbreak命令224によってブレー
クポイントが設定される。図13に示される例では、b
reak命令224の次のデバッグ出力から、このブレ
ークポイントの識別番号が「1」であることがわかる。
さらに、atbreak命令226によって、この識別
番号「1」のブレークポイントに対する属性が設定され
る。ここでは、識別番号1のブレークポイントで、0x40
001000番地の読出動作を属性として指定している。アド
レスの引数の次に値が引数として指定されていないの
で、ヒット時の動作が「読出」であることがわかる。
【0072】次に、runコマンド228で、アドレス
0からプログラムを実行することを指示している。その
結果、レジデントモニタ部ではプログラムを実行し、識
別番号1のブレークポイントにヒットすると、そのとき
の、atbreakコマンド226で指定したアドレス
のメモリの内容がモニタに表示される(230)。
【0073】図14に、本実施の形態のデバッガの操作
および出力のほかの例240を示す。この例では、ター
ゲットボードのMCUがブレークポイントにヒットした
時点での、コプロセッサのPCの値を調べる動作が行な
われている。loadコマンドで読みこまれたプログラ
ムに対し、breakコマンドによって所定アドレスに
ブレークポイントが設定される。この例ではブレークポ
イントが100番地に設定されている。識別番号として
は「1」が表示されている。
【0074】次にatbreakコマンドでこのブレー
クポイントの属性が設定される(242)。この例の場
合では、識別番号1のブレークポイントで、0x40000000
番地にマップされたHALT_CNTレジスタに0を書
込む動作を指定している。つまり、ブレークポイントヒ
ット時には、コプロセッサを停止することを指示してい
る。
【0075】次にrunコマンドでプログラムを実行
し、ブレークポイント1にヒットした旨のメッセージ2
44が表示される。プログラマはここでdumpコマン
ドを用いて0x40000004番地にマップされたPC_CNT
レジスタの値を確認している。
【0076】本実施の形態では、説明を明確にするため
に、ターゲットボードの構成、コプロセッサの仕様、デ
バッガコマンドなどとして簡略化したものを用いた。し
かしもちろん、より複雑な実装においても本実施の形態
の考え方を用いたリモートデバッガを実現することがで
きる。例えば、デバッガのコマンドをプログラマがコマ
ンドラインで入力する例に限定されるわけではなく、た
とえばGUI(Graphical User Interface)を用いて実
現してもよい。また、コプロセッサ内部の構成と、MC
U側から参照可能な内部資源が、本実施の形態で例示し
たものに限定されるわけではない。
【0077】この実施の形態のシステムでは、MCUと
スレーブ型の疎結合プロセッサ(DMACでもよい)を
組合わせたシステムのデバッグにおいて、MCU側にデ
バッグのための専用のハードウェアを追加する必要がな
いという利点がある。また、こうした機能を用いてデバ
ッグを行なうことで、コプロセッサ専用のデバッガを用
いることなく、コプロセッサのプログラムの停止、状態
の参照という機能を容易に実現することができる。すな
わち、MCUのデバッガに寄生したデバッグ環境を構築
することが可能となる。その結果、プログラマは単一の
デバッガを操作するだけで全体のソフトウェアのデバッ
グをすることが可能となり、したがってMCUとコプロ
セッサの各々で動作するプログラムが協調して動作する
ソフトウェア構成のデバッグが容易になるという効果が
ある。
【0078】[第2の実施の形態]第1の実施の形態の
デバッグ環境では、ブレークポイントに制御が達した
後、その旨を開発端末80側に通知し、開発端末80側
で処理内容を検索して再びレジデントモニタ部側に通知
してレジデントモニタ部側でその内容に応じた処理を行
なっている。しかし、このような制御を行なうと、ブレ
ークポイントに達してから実際にメモリの読書きが行な
われるまで多少の遅延時間がかかることになる。その間
にもコプロセッサ(またはDMAC)は動作しているた
め、この時間をより短くすることにより、ブレークポイ
ントヒット時の正確な情報を得やすくなる。第2の実施
の形態のデバッガは、この遅延時間をさらに短くするこ
とができる構成である。
【0079】図15を参照して、この第2の実施の形態
のシステムは、第1の実施の形態と同様、開発端末25
0と、通信路84によって開発端末250に接続される
ターゲットボード252とを含む。基本的に、この第2
の実施の形態にかかるデバッガは、第1の実施の形態の
デバッガにおいて開発端末250のフロントエンド部に
実装されていたブレークポイント属性DBを、ターゲッ
トボード252上のレジデントモニタ部に実装すること
により、上記した遅延時間をより短くする。
【0080】図16を参照して、この第2の実施の形態
における開発端末250のフロントエンド部が、図6に
示す第1の実施の形態の開発端末80のフロントエンド
部と異なるのは、図6のブレークポイント属性DB10
0を含まないこと、およびブレークポイント属性DBに
ブレークポイントヒット時の処理を登録するブレーク時
処理登録部94に代えて、モニタ96および入力部98
に接続され、モニタ96と入力部98を用いてプログラ
マにより入力されたブレークポイントヒット時の処理を
通信I/F102を介してレジデントモニタ部に通知
し、レジデントモニタ部側に設けられたブレークポイン
ト属性DBに登録させるためのブレーク時処理登録部2
60を含むことである。その他の点においては、このフ
ロントエンド部は図6に示すフロントエンド部と同様で
ある。したがって、図16において、図6と同じ部品に
は同じ参照符号および名称を付すこととし、それらの詳
細な説明はここでは繰返さない。
【0081】図17および図18を参照して、この第2
の実施の形態にかかるターゲットボード252側のレジ
デントモニタ部が、図7および図8に示される第1の実
施の形態にかかるレジデントモニタ部と異なるのは、以
下の点である。まず図17を参照して、ブレークポイン
ト設定時の処理ブロックとして、図7に示される各ブロ
ックに加え、フロントエンド部のブレーク時処理登録部
260からブレークポイントヒット時の処理を受信し
て、内部の記憶領域に割当てられたブレークポイント属
性DB272に登録するためのDB登録部270を含む
点である。
【0082】さらに、図18を参照して、デバッグ実行
時の処理ブロックとして、図8のハンドラ140に代
え、ブレークポイントヒット時に通信I/Fを介してフ
ロントエンド部に通知をするのではなく、レジデントモ
ニタ部側に設けられたブレークポイント属性DB272
を参照してブレークポイントヒット時に行なうべき処理
を決定し、その処理を行なうハンドラ280を含む点で
ある。
【0083】図17、図18において、図7、図8に示
されるものと同じブロックには同じ参照符号および名称
を付してある。それらの機能も同じである。したがって
それらについての詳細な説明はここでは繰返さない。
【0084】図19に、この第2の実施の形態のデバッ
グシステムのフロントエンド部において、ブレークポイ
ント設定時に実行される処理のフローチャートを示す。
図19を参照して、まず入力されたブレークポイントの
識別番号の妥当性、メモリアドレスのアラインメントな
どのような、入力パラメータのチェックを行なう(17
0)。もしパラメータが妥当なものでなければ処理を終
了する。パラメータが妥当なものであれば制御はステッ
プ290に進む。
【0085】ステップ290では、指定されたブレーク
ポイントの識別番号と、ブレークポイント命令のアドレ
スと、そのブレークポイントと関連付けられた、ヒット
時のメモリの読書き動作とをレジデントモニタ部の置換
処理部118およびDB登録部270に通知する。
【0086】続いてステップ292では、レジデントモ
ニタ部から返答があるまで待機し、レジデントモニタ部
から返答があれば処理を終了する。
【0087】一方、ステップ290でレジデントモニタ
部に通知が行なわれた際にレジデントモニタ部で行なわ
れる処理のフローチャートを図20に示す。図20を参
照して、まず通知されたブレークポイントヒット時の動
作をブレークポイント属性用DB272に登録する処理
を行なう(316)。この処理が図17に示すDB登録
部270に相当する。続いて、プログラムをプログラム
バックアップ120にバックアップし(180)、通知
によってフロントエンド部から指定された番地の命令を
ハンドラ分岐用のソフトウェア割込発生用命令に置換す
る処理を行なう(182)。そして、処理が終了したこ
とをフロントエンド部に通知する(184)。ステップ
180〜184の処理が図17の置換処理部118の機
能に相当する。
【0088】図19、図20の処理を行なうことによ
り、プログラム130のブレークポイントの命令は、ハ
ンドラ分岐用のソフトウェア割込発生用命令132に置
換される。また、ブレークポイント属性用DB272に
は、ブレークポイントヒット時の動作内容が登録され
る。
【0089】デバッグ実行時のための処理は以下のとお
りである。図21を参照して、開発端末250上のフロ
ントエンド部ではまず、プログラマの指示にしたがっ
て、デバッグ対象のプログラムの開始アドレスを指定し
て、レジデントモニタ部に対してプログラムの実行開始
を通知する(190)。続いて、フロントエンド部は、
ヒット時の動作がメモリ読出か否かを判定し(19
8)、メモリ読出でない場合には処理を終了する。ヒッ
ト時の動作がメモリ読出であれば、レジデントモニタ部
からメモリの読出結果の通知があるまで待機し(20
0)、通知があればその内容をモニタ96に表示して
(202)処理を終了する。
【0090】一方、レジデントモニタ部では以下の動作
を行なう。図22を参照して、ブレークポイントにヒッ
トすると、本実施の形態のレジデントモニタ部は、フロ
ントエンド部に制御を渡すかわりに、ターゲットボード
のメモリの中のレジデントモニタ部に割当てられた領域
に実装されているブレークポイント属性用DB272を
アクセスする(320)。そして、ブレークポイント属
性用DB272から読出された情報によって決まる処理
を行なう(214)。すなわち、ヒット時の動作がメモ
リの所定アドレスからの読出であればその内容を読出
し、所定アドレスへの書込みであればフロントエンド部
から通知されたデータをメモリのそのアドレスに書込む
処理を行なう(図18における参照符号158)。
【0091】続いて、実行した処理がメモリの読出か否
かを判定し(216)、処理が読出でなければ処理を終
了する。処理が読出であれば、読出結果をフロントエン
ド部に通知して(218)、処理を終了する。
【0092】以上のようにこの第2の実施の形態では、
ブレークポイントヒットがあった後、メモリの読書き動
作を行なうまでの間にフロントエンド部と通信するかわ
りに、ターゲットボード内で必要な情報を得ることがで
きる。そのため、フロントエンド部との通信オーバヘッ
ドが軽減され、ブレークポイントがヒットしてからメモ
リの読書きが行なわれるまでの遅延時間を少なくするこ
とができる。その結果、ブレークポイントヒット時のよ
り正確な情報を検出しより効率的にコプロセッサなどの
デバッグを行なうことが可能になる。
【0093】[第3の実施の形態]第2の実施の形態の
リモートデバッガにおいて、ブレークポイントの属性を
設定するときには、読書き動作および処理対象となる番
地などの動作項目をブレークポイント属性用DBに登録
する。しかしデバッグ実行時には、ブレークポイントヒ
ットがあってからブレークポイント属性用DBを参照
し、その内容によって実際に行なう処理を決定してい
る。
【0094】しかしこのようにブレークポイント属性用
DBを参照し参照結果によって処理を選択することでレ
イテンシが生じ、そのためにブレークポイントヒット時
から実際のメモリの読書きが行なわれるまでの遅延時間
が生じる。この遅延時間をさらに短くすることができれ
ば、ブレークポイントヒット時のより正確な情報を得る
ことが可能になる。
【0095】この第3の実施の形態のリモートデバッグ
システムは、そのための工夫として、ブレークポイント
属性用DBに読書き動作の種別、番地などのような動作
項目を登録するのではなく、そうした読書き動作を実現
するためのMCUが実行可能な命令列(MCU依存の機
械語)からなるハンドラ(サブルーチン)を生成し、そ
れを予めRAMに配置しておくことにより、デバッグ時
にはそのハンドラを直接呼び出して実行する。ハンドラ
が当該ブレークポイント専用の機械語命令列で実現され
るので、その処理は汎用のものを用いた場合と比較して
より高速になる。
【0096】図23にこの第3の実施の形態にかかるリ
モートデバッグシステムの全体構成を示す。図23を参
照して、このシステムは、上記したサブルーチンを生成
する機能を持ったフロントエンド部が動作する開発端末
330と、通信路84によって開発端末330に接続さ
れ、開発端末からサブルーチンを受けて記憶しておき、
デバッグ実行時にブレークポイントに達すると対応する
サブルーチンを実行する機能を有するレジデントモニタ
部が動作するターゲットボード332とを含む。このタ
ーゲットボード332が、図1に示すマルチプロセッサ
システム50に相当する。
【0097】図24に開発端末330のフロントエンド
部の機能ブロック図を示す。このフロントエンド部が図
16に示す第2の実施の形態のリモートデバッガのフロ
ントエンド部と異なるのは、ブレークポイントヒット時
の動作項目をレジデントモニタ部に送信するだけの処理
を行なうブレーク時処理登録部260に代えて、プログ
ラムによって入力されたブレークポイントヒット時の動
作項目に基づいて、デバッグ対象のシステムのプロセッ
サに依存したデータ(すなわちプロセッサが実行可能な
命令列からなるサブルーチン)を生成してレジデントモ
ニタ部に送信する機能を有するブレーク時処理登録部3
40を含む点である。
【0098】図24において、図16に示されるブロッ
クと同一のブロックには同一の参照符号および名称を付
してある。したがって、それらについての詳細な説明は
繰返さない。
【0099】図25および図27に、ターゲットボード
332上で動作するレジデントモニタ部の構成を示す。
図25において図17に示される第2の実施の形態のレ
ジデントモニタ部と異なる点は、ブレークポイントヒッ
ト時の動作項目をブレークポイント属性用DB272に
登録する処理を行なうDB登録部270に代えて、通信
I/F56に接続され、通信I/F56を介してフロン
トエンド部から受信したブレークポイントヒット時に実
行すべきサブルーチン354、356、358などを命
令メモリ116に格納するとともに、各サブルーチンが
格納された番地と、各サブルーチンに対応するブレーク
ポイントの識別番号との対応関係(図26に示す。)を
ブレークポイント属性用DB352に登録するためのサ
ブルーチンDB登録部350を含むことである。
【0100】また図27において図18に示される第2
の実施の形態のレジデントモニタ部と異なる点は、ブレ
ークポイントヒット時に、ブレークポイント属性用DB
272をアクセスして動作項目を読出し指定された処理
を実行するハンドラ280に代えて、ブレークポイント
ヒット時に、当該ブレークポイントの識別番号をキーと
してブレークポイント属性用DB352をアクセスし
(370)、対応するサブルーチンが格納された番地を
読出してPC112に設定(372)するとともに、プ
ログラム実行部114にPC112に設定された番地か
らプログラムの実行を開始させる処理を行なうための処
理ハンドラ360を含むことである。
【0101】プログラム実行部114がこのPC112
により指定される(374)番地のサブルーチンを実行
(376)することにより、データメモリに対してデバ
ッグのために指定された処理が行なわれることになる
(378)。
【0102】図26にブレークポイント属性用DB35
2の構成を示す。図26を参照して、ブレークポイント
属性用DB352は、ブレークポイント番号(識別番
号)と、そのブレークポイントヒット時に実行すべき動
作項目から生成されたサブルーチンが格納された番地と
を対応付けて格納する。
【0103】図28を参照して、この第3の実施の形態
にかかるフロントエンド部は、ブレークポイント設定時
には以下のように動作する。まず、入力されたブレーク
ポイントの識別番号の妥当性、メモリアドレスのアライ
ンメントなどのような、入力パラメータのチェックを行
なう(170)。もしパラメータが妥当なものでなけれ
ば処理を終了する。パラメータが妥当なものであれば制
御はステップ380に進む。
【0104】ステップ380では、指定されたブレーク
ポイントヒット時のメモリの読書き動作を実現するため
のサブルーチンを評価ボード上のMCUの機械語命令列
として作成する。続いてステップ382で、指定された
ブレークポイントの識別番号と、対応サブルーチンとを
レジデントモニタ部に通知する。そして、レジデントモ
ニタ部の置換処理部118から登録完了の返答があるま
で待機し(176)、レジデントモニタ部から返答があ
れば処理を終了する。
【0105】図29を参照して、ブレークポイント設定
時にレジデントモニタ部が実行する処理は以下のような
制御構造を有する。この処理は、フロントエンド部から
図28のステップ382の通知を受けることにより起動
される。
【0106】まずステップ390で、受信したサブルー
チンを命令メモリ116に格納する。この格納番地とブ
レークポイントの識別番号との対応を、ステップ392
でサブルーチン属性用DB352に格納する。
【0107】続いて、デバッグの対象として指定された
プログラムをバックアップする(180)。指定番地の
命令を処理ハンドラ360への分岐のためのソフトウェ
ア割込み発生用命令に置換する(182)。そして処理
が完了したことを開発端末80に通知して(184)処
理を終了する。
【0108】以上の処理によって、デバッグのための準
備が整ったことになる。デバッグにフロントエンド部で
行なわれる処理は図30に示される制御構造を有する。
図30を参照して、開発端末330上のフロントエンド
部ではまず、プログラマの指示にしたがって、デバッグ
対象のプログラムの開始アドレスを指定して、レジデン
トモニタ部に対してプログラムの実行開始を通知する
(190)。続いてステップ198では、フロントエン
ド部では、ヒット時の動作がメモリ読出か否かを判定
し、メモリ読出でない場合には処理を終了する。ヒット
時の動作がメモリ読出であれば、レジデントモニタ部か
らメモリの読出結果の通知があるまで待機し(20
0)、通知があればその内容をモニタ96に表示して
(202)処理を終了する。
【0109】一方レジデントモニタ部で実行される処理
は図31に示されるような制御構造を有する。この処理
は、ブレークポイントヒット時に起動される。まず、ヒ
ットしたブレークポイントの識別番号に対応するサブル
ーチンアドレスをブレークポイント属性用DB352を
アクセスして読出す。読出したアドレスをPC112に
設定する(図27の参照符号372)。そしてプログラ
ム実行部114に対してPC112によって指定された
アドレスからプログラムの実行を開始させる(40
4)。この処理により、図27の参照符号374、37
6で示されるようにたとえば対応のサブルーチン354
がプログラム実行部114によって実行される。サブル
ーチン354はデータメモリ122の指定された番地の
内容を読書きするための命令列であるから、その結果参
照符号378で示されるように、ブレークポイントに対
応する処理がこのサブルーチン実行によって行なわれる
ことになる。
【0110】以上のようにこの第3の実施の形態のリモ
ートデバッガでは、メモリの読書きに汎用的な関数を用
いるのではなく、個別のブレークポイントの個別の読書
き動作に特化したMCUの命令列で構成されるサブルー
チンを用いる。そのため、データベースを参照した結果
で汎用的な関数を実行する場合と比較してレイテンシが
減る。それら特化した命令列からなるサブルーチンは汎
用的な関数よりも少ない命令数で実現されるので、実行
時間が減少する。その結果、ブレークポイントがヒット
してから、メモリの読書きが行なわれるまでの遅延時間
を第2の実施の形態の場合よりもさらに小さくすること
ができる。その結果、ブレークポイントヒット時のより
正確な情報を検出することが可能となり、デバッグの精
度を高め、かつデバッグをより容易にすることができ
る。
【0111】今回開示された実施の形態はすべての点で
例示であって制限的なものではないと考えられるべきで
ある。本発明の範囲は上記した説明ではなくて特許請求
の範囲によって示され、特許請求の範囲と均等の意味お
よび範囲内でのすべての変更が含まれることが意図され
る。
【0112】
【発明の効果】以上のように本発明によれば、ブレーク
ポイントヒット時に改めて利用者が処理内容を指示する
場合と比較して、ブレークポイントヒット時から当該ブ
レークポイントで実行すべきデバッグ作業が行なわれる
までの遅延時間が短くなる。その結果、ブレークポイン
トヒット時における評価ボード上の状態をより正確にデ
バッグ作業に反映でき、デバッグが容易になるという効
果がある。
【0113】ブレークポイント属性用データベースを、
評価ボード上に実装することで、ブレークポイントヒッ
ト時における通信のためのオーバヘッドが軽くなり、ブ
レークポイントヒット時から当該ブレークポイントで実
行すべきデバッグ作業が行なわれるまでの遅延時間が短
くなる。その結果、ブレークポイントヒット時における
評価ボード上の状態をより正確にデバッグ作業に反映で
き、デバッグが容易になる。
【0114】ブレークポイント属性用データベースを、
開発用端末装置上に実装することで、評価ボード上のデ
バッグのためのリモートレジデント部を小さくでき、評
価ボードの設計が容易になるという効果がある。
【0115】ブレークポイントヒット時に、予めブレー
クポイント属性用データベースに登録されていた、評価
ボード上のメモリのアドレスからデータを読出して表示
するようにすることで、ヒット後、データの読出までに
要する時間を短くすることができる。ブレークポイント
ヒット時の評価ボード上の状態をより正確に知ることが
でき、その結果、評価ボードで実行されるソフトウェア
のデバッグが容易になるという効果がある。
【0116】ブレークポイントヒット時に、予めブレー
クポイント属性用データベースに登録されていた、評価
ボード上のメモリのアドレスに、ブレークポイント属性
用データベースに登録されていたデータを書込むことが
できるので、ヒット後、データの書込までに要する時間
を短くすることができる。ブレークポイントヒット時の
評価ボード上の状態をより正確にデバッグ作業に反映さ
せることができ、その結果、評価ボードのデバッグが容
易になるという効果がある。
【0117】ブレークポイントヒット時に行なうべき処
理を、処理内容ではなくプロセッサ依存の命令列に変換
して登録しておき、ブレークポイントヒット時にはこの
命令列を評価ボード上の処理部に直接に実行させるよう
にすると、ブレークポイントヒット時にデバッグのため
に行なう処理がより高速に実行される。ブレークポイン
トヒット時からデバッグのための処理が実行されるまで
の遅延時間がより短くなる。ヒット後、データの読出ま
でに要する時間を短くすることができるため、ブレーク
ポイントヒット時の評価ボード上の状態をより正確に知
ることができる。その結果、評価ボードのデバッグが容
易になるという効果がある。
【0118】ブレークポイントヒット時に評価ボード上
の処理部が実行する処理を、その機械語として予めデー
タベースに登録しておくと、ブレークポイントヒット時
の処理が高速に行なえる。ブレークポイントヒット時の
評価ボード上の状態をより正確に知ることができ、その
結果、評価ボードのデバッグが容易になるという効果が
ある。
【0119】ブレークポイントヒット時の処理を実行す
るハンドラを準備しておき、ブレークポイントヒット時
にはその分岐命令によってそのハンドラに処理を分岐さ
せるようにすることで、ブレークポイントヒット時の処
理が簡単かつ高速となる。ブレークポイントヒット時の
評価ボード上の状態をより正確に知ることができ、その
結果、評価ボードのデバッグが容易になるという効果が
ある。
【図面の簡単な説明】
【図1】 マルチプロセッサシステムの構成例を示すブ
ロック図である。
【図2】 コプロセッサの構成例を示すブロック図であ
る。
【図3】 マスタプロセッサからみたコプロセッサのメ
モリマップである。
【図4】 第1の実施の形態のリモートデバッガシステ
ムの全体構成を示す図である。
【図5】 第1の実施の形態のリモートデバッガシステ
ムで用いられるコマンド名とその機能とを表形式で示す
図である。
【図6】 第1の実施の形態のリモートデバッガシステ
ムのフロントエンド部のブロック図である。
【図7】 第1の実施の形態のリモートデバッガシステ
ムのレジデントモニタ部を含むターゲットボードのブロ
ック図である。
【図8】 第1の実施の形態のリモートデバッガシステ
ムのレジデントモニタ部を含むターゲットボードのブロ
ック図である。
【図9】 第1の実施の形態のリモートデバッガシステ
ムのフロントエンド部でブレークポイント設定時に実行
される処理の制御構造を示すフローチャートである。
【図10】 第1の実施の形態のリモートデバッガシス
テムのレジデントモニタ部でブレークポイント設定時に
実行される処理の制御構造を示すフローチャートであ
る。
【図11】 第1の実施の形態のリモートデバッガシス
テムのフロントエンド部でデバッグ実行時に実行される
処理の制御構造を示すフローチャートである。
【図12】 第1の実施の形態のリモートデバッガシス
テムのレジデントモニタ部でデバッグ実行時に実行され
る処理の制御構造を示すフローチャートである。
【図13】 第1の実施の形態のリモートデバッガシス
テムでのデバッグ時の表示例を示す図である。
【図14】 第1の実施の形態のリモートデバッガシス
テムでのデバッグ時の他の表示例を示す図である。
【図15】 第2の実施の形態のリモートデバッガシス
テムの全体構成を示す図である。
【図16】 第2の実施の形態のリモートデバッガシス
テムのフロントエンド部のブロック図である。
【図17】 第2の実施の形態のリモートデバッガシス
テムのレジデントモニタ部を含むターゲットボードのブ
ロック図である。
【図18】 第2の実施の形態のリモートデバッガシス
テムのレジデントモニタ部を含むターゲットボードのブ
ロック図である。
【図19】 第2の実施の形態のリモートデバッガシス
テムのフロントエンド部でブレークポイント設定時に実
行される処理の制御構造を示すフローチャートである。
【図20】 第2の実施の形態のリモートデバッガシス
テムのレジデントモニタ部でブレークポイント設定時に
実行される処理の制御構造を示すフローチャートであ
る。
【図21】 第2の実施の形態のリモートデバッガシス
テムのフロントエンド部でデバッグ実行時に実行される
処理の制御構造を示すフローチャートである。
【図22】 第2の実施の形態のリモートデバッガシス
テムのレジデントモニタ部でデバッグ実行時に実行され
る処理の制御構造を示すフローチャートである。
【図23】 第3の実施の形態のリモートデバッガシス
テムの全体構成を示す図である。
【図24】 第3の実施の形態のリモートデバッガシス
テムのフロントエンド部のブロック図である。
【図25】 第3の実施の形態のリモートデバッガシス
テムのレジデントモニタ部を含むターゲットボードのブ
ロック図である。
【図26】 第3の実施の形態のリモートデバッガシス
テムのブレークポイント属性用DBの構成を示す図であ
る。
【図27】 第3の実施の形態のリモートデバッガシス
テムのレジデントモニタ部を含むターゲットボードのブ
ロック図である。
【図28】 第3の実施の形態のリモートデバッガシス
テムのフロントエンド部でブレークポイント設定時に実
行される処理の制御構造を示すフローチャートである。
【図29】 第3の実施の形態のリモートデバッガシス
テムのレジデントモニタ部でブレークポイント設定時に
実行される処理の制御構造を示すフローチャートであ
る。
【図30】 第3の実施の形態のリモートデバッガシス
テムのフロントエンド部でデバッグ実行時に実行される
処理の制御構造を示すフローチャートである。
【図31】 第3の実施の形態のリモートデバッガシス
テムのレジデントモニタ部でデバッグ実行時に実行され
る処理の制御構造を示すフローチャートである。
【符号の説明】
50,82 ターゲットボード、52 MCU、54
バス、56,102通信I/F、58 DMAC、60
コプロセッサ、62 ROM、64 RAM、66
BusI/F、70 SIF、72 コア部、74 命
令用ローカルメモリ、76 データ用ローカルメモリ、
80 開発端末、84 通信路、90,114 プログ
ラム実行部、92 ブレークポイント設定部、94,3
40ブレーク時処理登録部、96 モニタ、98 入力
部、100,272,352ブレークポイント属性用D
B、110 PC設定部、112 PC、116メモ
リ、118 置換処理部、120 プログラムバックア
ップ、122 データメモリ、140,280,360
処理ハンドラ、270 DB登録部、350 サブル
ーチンDB登録部、354,356,358 サブルー
チン。

Claims (12)

    【特許請求の範囲】
  1. 【請求項1】 プロセッサを含むマスタ−スレーブ構成
    の複数処理部を有する評価ボードで実行されるプログラ
    ムを、前記評価ボードと接続される開発用端末装置を用
    いてデバッグするためのリモートデバッグ方法であっ
    て、 前記評価ボードで実行される前記プログラム中に予めブ
    レークポイントを設定するステップと、 前記ブレークポイントにヒットしたときに前記評価ボー
    ド上のメモリに対して行なうべき処理を、予め前記評価
    ボード上または前記開発用端末装置上に準備されたブレ
    ークポイント属性用データベースに登録するステップ
    と、 前記評価ボード上で前記プログラムの実行を開始するス
    テップと、 前記プログラムの実行において前記ブレークポイントに
    ヒットしたことに応答して、前記ブレークポイント属性
    用データベースを参照し、前記評価ボード上のメモリに
    対して行なうべき処理を前記評価ボード上の処理部に実
    行させるステップとを含む、リモートデバッグ方法。
  2. 【請求項2】 前記登録するステップは、前記ブレーク
    ポイントにヒットしたときにアクセスすべき前記評価ボ
    ード上のメモリのアドレスを、予め前記評価ボード上ま
    たは前記開発用端末装置上に準備されたブレークポイン
    ト属性用データベースに登録するステップを含み、 前記実行させるステップは、 前記プログラムの実行において前記ブレークポイントに
    ヒットしたことに応答して、前記ブレークポイント属性
    用データベースを参照し、前記ブレークポイント属性用
    データベースから読出された前記評価ボード上のメモリ
    のアドレスのデータを読出して、読出されたデータを前
    記開発用端末装置に通知する処理を前記評価ボード上の
    処理部に実行させるステップと、 前記開発用端末装置に通知されたデータを出力手段上に
    出力するステップとを含む、請求項1に記載のリモート
    デバッグ方法。
  3. 【請求項3】 前記登録するステップは、前記ブレーク
    ポイントにヒットしたときにアクセスすべき前記評価ボ
    ード上のメモリのアドレスと、当該アドレスに書込むべ
    きデータとを、予め前記評価ボード上または前記開発用
    端末装置上に準備されたブレークポイント属性用データ
    ベースに登録するステップを含み、 前記実行させるステップは、前記プログラムの実行にお
    いて前記ブレークポイントにヒットしたことに応答し
    て、前記ブレークポイント属性用データベースを参照
    し、前記ブレークポイント属性用データベースから読出
    された前記評価ボード上のメモリのアドレスに、前記ブ
    レークポイント属性用データベースから読出されたデー
    タを書込む処理を前記評価ボード上の処理部に実行させ
    るステップを含む、請求項1に記載のリモートデバッグ
    方法。
  4. 【請求項4】 前記登録するステップは、前記開発用端
    末装置において利用者から受取った指示に基づいて、前
    記ブレークポイントにヒットしたときに前記評価ボード
    上のプロセッサに実行させるべき処理部依存の命令列を
    生成し、予め前記評価ボード上に準備されたブレークポ
    イント属性用データベースに登録するステップを含み、 前記実行させるステップは、前記プログラムの実行にお
    いて前記ブレークポイントにヒットしたことに応答し
    て、前記ブレークポイント属性用データベースを参照
    し、前記ブレークポイント属性用データベースから読出
    された処理部依存の命令列を前記評価ボード上の処理部
    に与えて実行するステップを含む、請求項1に記載のリ
    モートデバッグ方法。
  5. 【請求項5】 前記処理部依存の命令列は、前記処理部
    を構成するプロセッサの機械語である、請求項4に記載
    のリモートデバッグ方法。
  6. 【請求項6】 前記ブレークポイントを設定するステッ
    プは、 前記開発用端末装置において前記ブレークポイントを特
    定する情報を利用者から受取るステップと、 前記評価ボード上のデバッグ対象プログラムの、前記ブ
    レークポイントを特定する情報に対応する命令を、ブレ
    ークポイントヒット時の処理を行なうハンドラに制御を
    分岐させるための分岐命令に置換するステップとを含
    む、請求項1〜5のいずれかに記載のリモートデバッグ
    方法。
  7. 【請求項7】 プロセッサを含むマスタ−スレーブ構成
    の複数処理部を有する評価ボードで実行されるプログラ
    ムを、前記評価ボードと接続される開発用端末装置を用
    いてデバッグするためのリモートデバッグ装置であっ
    て、 前記評価ボードで実行される前記プログラム中に予めブ
    レークポイントを設定するための手段と、 前記ブレークポイントにヒットしたときに前記評価ボー
    ド上のメモリに対して行なうべき処理を、予め前記評価
    ボード上または前記開発用端末装置上に準備されたブレ
    ークポイント属性用データベースに登録するための手段
    と、 前記評価ボード上で前記プログラムの実行を開始するた
    めの手段と、 前記プログラムの実行において前記ブレークポイントに
    ヒットしたことに応答して、前記ブレークポイント属性
    用データベースを参照し、前記評価ボード上のメモリに
    対して行なうべき処理を前記評価ボード上の処理部に実
    行させるための手段とを含む、リモートデバッグ装置。
  8. 【請求項8】 前記登録するための手段は、前記ブレー
    クポイントにヒットしたときにアクセスすべき前記評価
    ボード上のメモリのアドレスを、予め前記評価ボード上
    または前記開発用端末装置上に準備されたブレークポイ
    ント属性用データベースに登録するための手段を含み、 前記実行させるための手段は、 前記プログラムの実行において前記ブレークポイントに
    ヒットしたことに応答して、前記ブレークポイント属性
    用データベースを参照し、前記ブレークポイント属性用
    データベースから読出された前記評価ボード上のメモリ
    のアドレスのデータを読出して、読出されたデータを前
    記開発用端末装置に通知する処理を前記評価ボード上の
    処理部に実行させるための手段と、 前記開発用端末装置に通知されたデータを出力手段上に
    出力するための手段とを含む、請求項7に記載のリモー
    トデバッグ装置。
  9. 【請求項9】 前記登録するための手段は、前記ブレー
    クポイントにヒットしたときにアクセスすべき前記評価
    ボード上のメモリのアドレスと、当該アドレスに書込む
    べきデータとを、予め前記評価ボード上または前記開発
    用端末装置上に準備されたブレークポイント属性用デー
    タベースに登録するための手段を含み、 前記実行させるための手段は、前記プログラムの実行に
    おいて前記ブレークポイントにヒットしたことに応答し
    て、前記ブレークポイント属性用データベースを参照
    し、前記ブレークポイント属性用データベースから読出
    された前記評価ボード上のメモリのアドレスに、前記ブ
    レークポイント属性用データベースから読出されたデー
    タを書込む処理を前記評価ボード上の処理部に実行させ
    るための手段を含む、請求項7に記載のリモートデバッ
    グ装置。
  10. 【請求項10】 前記登録するための手段は、前記開発
    用端末装置において利用者から受取った指示に基づい
    て、前記ブレークポイントにヒットしたときに前記評価
    ボード上の処理部に実行させるべき処理部依存の命令列
    を生成し、予め前記評価ボード上に準備されたブレーク
    ポイント属性用データベースに登録するための手段を含
    み、 前記実行させるための手段は、前記プログラムの実行に
    おいて前記ブレークポイントにヒットしたことに応答し
    て、前記ブレークポイント属性用データベースを参照
    し、前記ブレークポイント属性用データベースから読出
    された処理部依存の命令列を前記評価ボード上の処理部
    に与えて実行するための手段を含む、請求項7に記載の
    リモートデバッグ装置。
  11. 【請求項11】 前記処理部依存の命令列は、前記処理
    部を構成するプロセッサの機械語である、請求項10に
    記載のリモートデバッグ装置。
  12. 【請求項12】 前記ブレークポイントを設定するため
    の手段は、 前記開発用端末装置において前記ブレークポイントを特
    定する情報を利用者から受取るための手段と、 前記評価ボード上のデバッグ対象プログラムの、前記ブ
    レークポイントを特定する情報に対応する命令を、ブレ
    ークポイントヒット時の処理を行なうハンドラに制御を
    分岐させるための分岐命令に置換するための手段とを含
    む、請求項7〜11のいずれかに記載のリモートデバッ
    グ装置。
JP2001196796A 2001-06-28 2001-06-28 リモートデバッグ方法および装置 Withdrawn JP2003015906A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2001196796A JP2003015906A (ja) 2001-06-28 2001-06-28 リモートデバッグ方法および装置
US10/155,070 US20030004671A1 (en) 2001-06-28 2002-05-28 Remote debugging apparatus for executing procedure preregistered in database at program breakpoint

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2001196796A JP2003015906A (ja) 2001-06-28 2001-06-28 リモートデバッグ方法および装置

Publications (1)

Publication Number Publication Date
JP2003015906A true JP2003015906A (ja) 2003-01-17

Family

ID=19034529

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2001196796A Withdrawn JP2003015906A (ja) 2001-06-28 2001-06-28 リモートデバッグ方法および装置

Country Status (2)

Country Link
US (1) US20030004671A1 (ja)
JP (1) JP2003015906A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636870B2 (en) 2005-10-31 2009-12-22 Nec Electronics Corporation Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
JP2018165902A (ja) * 2017-03-28 2018-10-25 富士通株式会社 試験装置、試験方法、試験プログラム及び試験システム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7363617B2 (en) * 2002-05-23 2008-04-22 International Business Machines Corporation Database breakpoint apparatus and method
US20040162888A1 (en) * 2003-02-17 2004-08-19 Reasor Jason W. Remote access to a firmware developer user interface
US7917894B2 (en) * 2005-06-03 2011-03-29 International Business Machines Corporation Constraining source code and objects for analysis tools
US8769495B1 (en) * 2005-09-30 2014-07-01 Sony Computer Entertainment Inc. Systems and methods for debugging in a multiprocessor environment
US7979494B1 (en) 2006-11-03 2011-07-12 Quest Software, Inc. Systems and methods for monitoring messaging systems
US9092570B2 (en) * 2007-07-28 2015-07-28 Sam Michael Memory management for remote software debuggers and methods
US9176845B2 (en) * 2010-03-19 2015-11-03 Red Hat, Inc. Use of compiler-introduced identifiers to improve debug information pertaining to user variables
US9262302B2 (en) * 2010-12-16 2016-02-16 International Business Machines Corporation Displaying values of variables in a first thread modified by another thread
US8910124B1 (en) * 2011-10-31 2014-12-09 Google Inc. Low-overhead method and apparatus for collecting function call trace data
US9703676B2 (en) * 2014-12-31 2017-07-11 International Business Machines Corporation Testing application internal modules with instrumentation
CN108009045B (zh) * 2016-10-31 2020-11-06 杭州海康威视数字技术股份有限公司 一种主备数据库故障处理方法及装置

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4312066A (en) * 1979-12-28 1982-01-19 International Business Machines Corporation Diagnostic/debug machine architecture
US4701845A (en) * 1984-10-25 1987-10-20 Unisys Corporation User interface processor for computer network with maintenance and programmable interrupt capability
US5193187A (en) * 1989-12-29 1993-03-09 Supercomputer Systems Limited Partnership Fast interrupt mechanism for interrupting processors in parallel in a multiprocessor system wherein processors are assigned process ID numbers
US5956514A (en) * 1991-04-12 1999-09-21 Boeing North American, Inc. Apparatus and method for multiple processor software development
US5504892A (en) * 1994-09-08 1996-04-02 Taligent, Inc. Extensible object-oriented file system
US5630049A (en) * 1994-11-30 1997-05-13 Digital Equipment Corporation Method and apparatus for testing software on a computer network
US5815653A (en) * 1995-11-13 1998-09-29 You; Lawrence L. Debugging system with portable debug environment-independent client and non-portable platform-specific server
US6158045A (en) * 1995-11-13 2000-12-05 Object Technology Licensing Corporation Portable debugging services utilizing a client debugger object and a server debugger object with flexible addressing support
US6188975B1 (en) * 1998-03-31 2001-02-13 Synopsys, Inc. Programmatic use of software debugging to redirect hardware related operations to a hardware simulator
EP1046991B1 (de) * 1999-04-20 2002-12-11 Siemens Aktiengesellschaft Verfahren zum Testen der Unabhängigkeit und Verträglichkeit eines Software-Moduls
US6397382B1 (en) * 1999-05-12 2002-05-28 Wind River Systems, Inc. Dynamic software code instrumentation with cache disabling feature
US6581191B1 (en) * 1999-11-30 2003-06-17 Synplicity, Inc. Hardware debugging in a hardware description language
US6795962B1 (en) * 1999-12-30 2004-09-21 Microsoft Corporation Machine independent debugger
US20030005407A1 (en) * 2000-06-23 2003-01-02 Hines Kenneth J. System and method for coordination-centric design of software systems
US6718538B1 (en) * 2000-08-31 2004-04-06 Sun Microsystems, Inc. Method and apparatus for hybrid checkpointing
US20020065646A1 (en) * 2000-09-11 2002-05-30 Waldie Arthur H. Embedded debug system using an auxiliary instruction queue
US7020871B2 (en) * 2000-12-21 2006-03-28 Intel Corporation Breakpoint method for parallel hardware threads in multithreaded processor

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7636870B2 (en) 2005-10-31 2009-12-22 Nec Electronics Corporation Semiconductor integrated circuit device, and debugging system and method for the semiconductor integrated circuit device
JP2018165902A (ja) * 2017-03-28 2018-10-25 富士通株式会社 試験装置、試験方法、試験プログラム及び試験システム

Also Published As

Publication number Publication date
US20030004671A1 (en) 2003-01-02

Similar Documents

Publication Publication Date Title
US6718294B1 (en) System and method for synchronized control of system simulators with multiple processor cores
US6598178B1 (en) Peripheral breakpoint signaler
US5630049A (en) Method and apparatus for testing software on a computer network
US20060117224A1 (en) Trace and debug method and system for a processor
US20130297282A1 (en) Dynamically Adjusting Speed Versus Accuracy of Computer Platform Simulation
JPH06314213A (ja) デバッグ装置
JP2003015906A (ja) リモートデバッグ方法および装置
US20100153786A1 (en) Processor, multiprocessor, and debugging method
CN116049035B (zh) 一种缓存一致性的验证和调试的实现方法
CN1963785A (zh) 软件测试***和软件测试方法
KR900004291B1 (ko) 데이터 프로세서
CN100403275C (zh) 应用于固件程序除错的微处理器与方法
US10534682B2 (en) Method and diagnostic apparatus for performing diagnostic operations upon a target apparatus using transferred state and emulated operation of a transaction master
JP3085730B2 (ja) 複合cpuシステムの並列シミュレーション方式
KR20050063023A (ko) 제이티에이지를 이용한 임베디드 시스템의 디버깅 장치 및방법
JP2005353020A (ja) コンピュータプログラムのシミュレーション方式
JP2006323726A (ja) モニタプログラムおよびリアルタイムトレースシステム
JP2808757B2 (ja) デバッグ用マイクロプロセッサ
CN111143141B (zh) 一种状态机设置方法及***
JPS63177231A (ja) 並列プログラムデバグ方式
JPH07248939A (ja) プロセッサ及びプロセッサシステム
JPS59128652A (ja) デイスプレイ装置を用いたプログラム検査方式
JP2520158B2 (ja) ディジタルシグナルプロセッサのデバッグ方式
KR100658485B1 (ko) 마이크로프로세서 개발시스템
JPS59202546A (ja) デバツグ装置

Legal Events

Date Code Title Description
A300 Application deemed to be withdrawn because no request for examination was validly filed

Free format text: JAPANESE INTERMEDIATE CODE: A300

Effective date: 20080902