Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456
JP5076381B2 - ソフトウェア開発装置及びソフトウェア開発方法 - Google Patents
[go: Go Back, main page]

JP5076381B2 - ソフトウェア開発装置及びソフトウェア開発方法 - Google Patents

ソフトウェア開発装置及びソフトウェア開発方法 Download PDF

Info

Publication number
JP5076381B2
JP5076381B2 JP2006188630A JP2006188630A JP5076381B2 JP 5076381 B2 JP5076381 B2 JP 5076381B2 JP 2006188630 A JP2006188630 A JP 2006188630A JP 2006188630 A JP2006188630 A JP 2006188630A JP 5076381 B2 JP5076381 B2 JP 5076381B2
Authority
JP
Japan
Prior art keywords
core
information
software development
processor core
unit
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.)
Expired - Fee Related
Application number
JP2006188630A
Other languages
English (en)
Other versions
JP2008015940A (ja
Inventor
学 渡辺
豊 中野
健二 上田
充陽 倉重
泰嗣 長谷川
浩之 両角
末喜 糸山
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.)
Fujitsu Semiconductor Ltd
Original Assignee
Fujitsu Semiconductor Ltd
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 Fujitsu Semiconductor Ltd filed Critical Fujitsu Semiconductor Ltd
Priority to JP2006188630A priority Critical patent/JP5076381B2/ja
Priority to US11/822,728 priority patent/US8079014B2/en
Publication of JP2008015940A publication Critical patent/JP2008015940A/ja
Application granted granted Critical
Publication of JP5076381B2 publication Critical patent/JP5076381B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/36Prevention of errors by analysis, debugging or testing of software
    • G06F11/3698Environments for analysis, debugging or testing of software

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)
  • Stored Programmes (AREA)

Description

本発明はソフトウェア開発装置及びソフトウェア開発方法に関し、特に、マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発装置及びソフトウェア開発方法に関する。
ソフトウェア開発において、ソースプログラムやプログラム中の関数などの依存関係をプロジェクト管理する方法(例えば、特許文献1、2参照。)が知られている。
マルチコアプロセッサ向けのソフトウェア開発においてもプロジェクト管理が用いられており、ソフトウェア開発者は、コンピュータのディスプレイ上に、プロジェクト情報、各プロセッサコアで実行される特定の処理が含まれるソースプログラム、その処理に関するプログラム開発支援情報、デバッグ情報などのソフトウェア開発用情報を表示して、ソフトウェア開発を行っていた。
なお、特許文献3には、マルチプロセスプログラムを構成する複数のプログラムの動作情報に関連付けたデバッグ情報をプログラムの動作と連動しながら特徴表示する技術が開示されている。
特開平09−212352号公報 特許第3603718号公報 特開2001−331465号公報
しかし、従来の技術では、あるソフトウェア開発用情報が、どのプロセッサコアに属するかが、ソフトウェア開発者にとって判別しづらいという問題があった。
このため、特定のプロセッサコアに属するソフトウェア開発用情報を、他のプロセッサコアに属する情報として参照してしまうような危険性が大きく、誤ったソースプログラムの改変を行ってしまうなどの問題があった。
本発明はこのような点に鑑みてなされたものであり、マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを軽減可能なソフトウェア開発装置を提供することを目的とする。
また、本発明の他の目的は、マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを軽減可能なソフトウェア開発方法を提供することである。
本発明では上記問題を解決するために、マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発装置において、図1に示すように、ソフトウェアを開発する際のソフトウェア開発用情報11が、複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別するプロセッサコア識別部12と、識別結果に応じて、ソフトウェア開発用情報11がいずれのプロセッサコアに属するかを視覚的に判別可能なように表示する表示処理部13と、を有することを特徴とするソフトウェア開発装置10が提供される。
上記の構成によれば、プロセッサコア識別部12は、ソフトウェアを開発する際のソフトウェア開発用情報11が、複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別し、表示処理部13は、識別結果に応じて、ソフトウェア開発用情報11がいずれのプロセッサコアに属するかを視覚的に判別可能なように表示する。
また、マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発方法において、プロセッサコア識別部が、前記ソフトウェアを開発する際のソフトウェア開発用情報が、複数のプロセッサコアのうちいずれの前記プロセッサコアに属するかを識別し、表示処理部が、識別結果に応じて、前記ソフトウェア開発用情報がいずれの前記プロセッサコアに属するかを視覚的に判別可能なように表示することを特徴とするソフトウェア開発方法が提供される。
上記の方法によれば、プロセッサコア識別部はソフトウェアを開発する際のソフトウェア開発用情報が複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別し、表示処理部は識別結果に応じて、ソフトウェア開発用情報がいずれのプロセッサコアに属するかを視覚的に判別可能なように表示する。
本発明では、ソフトウェア開発用情報が、どのプロセッサコアに属するものか識別して、識別結果に応じて、ソフトウェア開発用情報がいずれのプロセッサコアに属するかを視覚的に判別可能なように表示することで、ユーザは、現在扱っているソフトウェア開発用情報が、どのプロセッサコアに属するものかを容易に判別できる。これにより、マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを大幅に軽減することができる。
以下、本発明の実施の形態を図面を参照して詳細に説明する。
図1は、本実施の形態のソフトウェア開発装置の概略を示す図である。
ソフトウェア開発装置10は、ソフトウェア開発用情報11が複数のプロセッサコア(以下単にコアと略す場合もある。)のうちいずれのプロセッサコアに属するかを識別するプロセッサコア識別部12と、表示処理部13とを有している。
ソフトウェア開発用情報11には、プロジェクト情報、ソースプログラム、ソースプログラムによる処理に関するプログラム開発支援情報やデバッグ情報などがある。
また、プログラム開発支援情報には、デバッグ時のブレークポイント情報またはウォッチポイント情報などの実行制御情報、ビルドオプション情報、性能情報、オブジェクト(タスク)情報などがある。デバッグ情報には、メモリウィンドウ情報、レジスタウィンドウ情報、シンボルウィンドウ情報やスタックフレームウィンドウ情報などがある。
プロセッサコア識別部12は、上記のようなソフトウェア開発用情報11がどのコアに属するかを識別する。詳細は、後述する。
表示処理部13は、識別結果に応じて、ソフトウェア開発用情報11がいずれのコアに属するかを、ユーザ(ソフトウェア開発者)が視覚的に判別可能なように表示する。
例えば、図1では、ソフトウェア開発用情報11としてプロジェクト情報を示している。プロジェクト情報は、図1のように、例えば、コンピュータのディスプレイ上にGUI(Graphical User Interface)表示されるプロジェクトウィンドウ20内に表される。例えば、コア0、コア1の2つのコアがある場合、プロセッサコア識別部12で識別された結果、プロジェクト情報として、コア0用プロジェクトフォルダとコア1用プロジェクトフォルダとを視覚的に簡単に判別可能なように表示する。具体的には、コアごとに、自動的にフォルダを分けて表示するとともに、例えば、コア0用プロジェクトフォルダを赤で表示し、コア1用プロジェクトフォルダを緑で表示する。また、ソースプログラムやデバッグ情報などがコア0、1ごとにプロジェクト管理されているが、これらのファイルも、各コア0、1に対応付けられた色で表示する。
このように、ソフトウェア開発用情報が、どのプロセッサコアに属するものか識別して、識別結果に応じて、ソフトウェア開発用情報11がいずれのコアに属するかを視覚的に判別可能なように表示することで、ユーザは、現在扱っているソフトウェア開発用情報が、どのコアに属するものかを容易に判別できる。これにより、マルチコアプロセッサで実行するソフトウェア開発時の煩雑さを大幅に軽減することができる。
以下、本実施の形態の詳細を説明する。
図2は、本実施の形態のソフトウェア開発装置の具体的なハードウェア構成例である。
ソフトウェア開発装置100は、例えば、CPU(Central Processing Unit)101、ROM(Read Only Memory)102、RAM(Random Access Memory)103、HDD(Hard Disk Drive)104、グラフィック処理部105、入力I/F(Interface)106などによって構成され、これらはバス107を介して相互に接続されている。
ここで、CPU101は、ROM102やHDD104に格納されているプログラムや各種データに応じて、グラフィック処理部105など、各部を制御し、図1に示したプロセッサコア識別部12、表示処理部13の機能などを実現する。
ROM102は、CPU101が実行する基本的なプログラムやデータを格納する。
RAM103は、CPU101が実行途中のプログラムや演算途中のデータを格納している。
HDD104は、CPU101が実行するOS(Operation System)、ソフトウェアを開発するプログラム、各種アプリケーションプログラムや各種データを格納する。
グラフィック処理部105には、表示装置として、例えば、ディスプレイ105aが接続されており、CPU101からの描画命令に従って、ディスプレイ105a上に、GUIで、図1に示したようなプロジェクトウィンドウ20など、ソフトウェア開発用の画面などを表示する。
入力I/F106には、マウス106aやキーボード106bなどの入力装置が接続されており、ソフトウェア開発者などのユーザにより入力された情報を受信し、バス107を介してCPU101に伝送する。
上記のようなハードウェア構成で実現されるソフトウェア開発時に必要な各機能ブロックの例を以下に示す。
図3は、ソフトウェア開発時に必要な機能を示す機能ブロック図である。
ソフトウェア開発環境は、例えば、マネージャ部210、デバッガ制御部220、エディタ部230、エミュレータ部240、シミュレータ部250、モニタ部260、及び測定情報表示部270を有している。これらは、例えば、DLL(Dynamic Link Library)などで表現され、ソフトウェア開発プログラム本体が必要に応じてライブラリとして呼び出すことによって各機能ブロックの処理が実行される。また、全ての機能ブロックを1つのプログラムで実現するようにしてもよい。
マネージャ部210は、プロジェクト管理部211、ビルド制御部212、及びウィンドウ管理部213を有している。
プロジェクト管理部211は、プロジェクト情報とソースプログラムとの対応付けを行う。
ビルド制御部212は、ビルド時にオプションやコンパイラなどの翻訳ツールを制御する。
ウィンドウ管理部213は、プロジェクトウィンドウの設定などを行う。また、コア識別部213a、コア色設定部213b、及び色対応付け部213cを有している。
コア識別部213aは、特定のプロジェクト情報やソースプログラムがどのコアに属するかを識別する。
コア色設定部213bは、コアごとに特定の色(以下コア色という。)を設定する。例えば、2つのコアを有するマルチコアプロセッサのソフトウェアを開発する際には、コア0のコア色は赤、コア1のコア色は緑などのように決める。
色対応付け部213cは、プロジェクト情報(フォルダなど)が属するコアが識別されると、コア色設定部213bで設定されたコア色をプロジェクト情報に対応付ける。そして、図2で示したグラフィック処理部105により、特定のコアに対応したプロジェクト情報を、そのコア色を用いてディスプレイ105aに表示させる。
コア識別部213aで識別されたコアの情報や、マネージャ部210のコア色設定部213bで設定された色の情報は、プログラム実行時に他の機能ブロックと共有される。
デバッガ制御部220は、デバッガ管理部221、実行/ブレーク管理部222、デバッグデータ管理部223、及びウィンドウ管理部224を有している。
デバッガ管理部221は、エミュレータ部240、シミュレータ部250またはモニタ部260などのデバッガを管理する。
実行/ブレーク管理部222は、デバッガの実行やブレーク(停止)を制御する。
デバッグデータ管理部223は、デバッグに必要な情報(メモリ、レジスタ、スタックやトレースなど)をコアごとに管理する。
ウィンドウ管理部224は、デバッグ情報の表示ウィンドウの設定などを行う。また、コア識別部224aと、色対応付け部224bとを有している。
コア識別部224aは、特定のデバッグ情報やブレークポイント情報などが、どのコアに属するのかを識別する。
色対応付け部224bは、特定のデバッグデータやブレークポイント情報などが属するコアが識別されると、マネージャ部210のコア色設定部213bで設定されたコア色をデバッグデータに対応付ける。そして、図2で示したグラフィック処理部105により、特定のコアに属するデバッグデータを、そのコア色を用いてディスプレイ105aに表示させる。例えば、デバッグデータの表示ウィンドウのフレームを対応付けられたコア色で表示させる。
エディタ部230は、図2で示したマウス106aやキーボード106bからの入力信号に応じて、ソースプログラムなどの編集を行う。また、エディタ部230は、編集ウィンドウの設定などを行うウィンドウ管理部231を有している。ウィンドウ管理部231は、コア識別部231a、色対応付け部231bを有している。
コア識別部231aは、編集データ(例えばソースプログラム)がどのコアに属するのかを識別する。
色対応付け部231bは、編集データが属するコアが識別されると、マネージャ部210のコア色設定部213bで設定されたコア色を編集データに対応付ける。そして、図2で示したグラフィック処理部105により、特定のコアに属する編集データを、そのコア色を用いてディスプレイ105a上に表示させる。例えば、ソースプログラムの編集ウィンドウのフレームを、コア色で表示させる。
デバッガであるエミュレータ部240、シミュレータ部250、及びモニタ部260は、デバッガ制御部220の制御のもといずれかが選択され、ビルドされたターゲットプログラムを取り込んでデバッグ処理を行う。なお、エミュレータ部240を使用する際には、図2で示したソフトウェア開発装置100に、例えば、ICE(In Circuit Emulator)を接続してICEでデバッグを実行させる。
また、エミュレータ部240、シミュレータ部250、及びモニタ部260は、それぞれコア識別部241、251、261を有しており、どのコアに属するターゲットプログラムなのかを判別する。
測定情報表示部270は、測定種別管理部271、測定制御部272、測定データ管理部273、及びウィンドウ管理部274を有している。
測定種別管理部271は、プロファイラ、サンプラ、カバレージ、PA(Performance Analyzer)やOSアナライザなど、プログラム開発支援情報である性能情報やタスク情報を測定する測定手段を選択する。これらは、エミュレータ部240やシミュレータ部250などを用いて測定される。
測定制御部272は、測定の開始位置や終了位置などの測定区間情報を管理する。
測定データ管理部273は、エミュレータ部240やシミュレータ部250によりプロファイラ、サンプラ、カバレージ、及びPAで測定したときの測定データを管理する。
ウィンドウ管理部274は、測定データをもとに、性能情報やタスク情報をコアごとにソフトウェア開発者が視覚的に判別可能なように表示する。そのために、ウィンドウ管理部274は、コア識別部274a、及び色対応付け部274bを有している。
コア識別部274aは、測定の結果得られた性能情報やタスク情報がどのコアに属するのかを識別する。
色対応付け部274bは、性能情報やタスク情報が属するコアが識別されると、マネージャ部210のコア色設定部213bで設定されたコア色をその性能情報やタスク情報に対応付ける。そして、図2で示したグラフィック処理部105により、特定のコアに属する性能情報やタスク情報を、そのコア色を用いてディスプレイ105a上に表示させる。例えば、ウィンドウのフレームをコア色で表示させたり、性能情報やタスク情報をコアごとに色分けして表示させる。
なお、図3では、コア色設定部213bはマネージャ部210に搭載するようにしているが、デバッガ制御部220、測定情報表示部270、または各デバッガに搭載するようにしてもよい。但し、コアごとに、それぞれ1つの色を対応付けることが望ましい。
また、コア識別部213a、224a、231a、241、251、261、274aを各機能ブロックに設けているが、1つであってもよい。その場合、識別したコアの情報を各機能ブロックで共有すればよい。
以下、本実施の形態のソフトウェア開発装置100の動作を説明する。
なお、以下では、コアが2つの場合のマルチコアプロセッサ用のソフトウェアを開発する例を示すが、これに限定されない。
図4は、ソフトウェア開発の概略の流れを示すフローチャートである。
ソフトウェア開発において、まずプロジェクトや、そのプロジェクトのソースプログラムを作成する(ステップS1)。次に、ビルドしてそれぞれのコアのターゲットファイルを作成する(ステップS2)。さらに、ターゲットファイルをデバッガに取り込んでデバッグ処理する(ステップS3)。最後に、性能情報の測定またはタスク解析などを行う(ステップS4)。
以下に、各ステップS1〜S4の詳細を説明する。
図5は、プロジェクト及びソースプログラムの作成処理の流れを示すフローチャートである。
まず、プロジェクトを新規に作成する(ステップS10)。
図6は、プロジェクト作成画面を示す図である。
CPU101の制御のもとグラフィック処理部105は、ディスプレイ105aにGUIでプロジェクト作成画面を表示する。ユーザによりプロジェクトを新規に作成する旨の選択がなされると、CPU101の制御のもとでグラフィック処理部105は、図のように、コア0のプロジェクトを作成するのか、コア1のプロジェクトを作成するのかを選択するコア選択ウィンドウ301を表示する。ユーザは、このいずれかを選択する。
プロジェクトが作成されると、マネージャ部210のコア識別部213aは、ユーザによって選択されたコアを識別する(ステップS11)。
プロジェクトが属するコアが識別されると、色対応付け部213cでは、コア色設定部213bで設定されたコア色と、そのプロジェクト情報を対応付ける(ステップS12)。以下では、コア0のコア色が赤、コア1のコア色が緑と設定されている場合を例にして説明する。
プロジェクト情報とコア色が対応付けられると、対応付けられたコア色で、コア別のプロジェクトフォルダを作成し、ディスプレイ105a上のプロジェクトウィンドウ(図1参照。)に表示する(ステップS13)。
その後プロジェクトファイルを作成し(ステップS14)、プロジェクトに追加するソースプログラムの編集を行う(ステップS15)。
ソースプログラムの編集が終わると、ソースプログラムをプロジェクトに登録する(ステップS16)。その際、例えば、エディタ部230のウィンドウ管理部231は、以下のようなコア選択ウィンドウを編集ウィンドウ上に表示する。
図7は、ソースプログラムの編集ウィンドウを示す図である。
編集ウィンドウ302上でソースプログラムの編集が終わると、例えば、ユーザは、編集ウィンドウ302上にマウスカーソルを合わせてマウス106aを右クリックするなどして、ソースプログラムをプロジェクトに追加するための選択ウィンドウ303を表示する。ユーザによって、例えば、プロジェクトへ追加する旨の選択がなされると、ウィンドウ管理部231は、コア選択ウィンドウ304を表示する。ユーザは、ソースプログラムをコア0に対応付けるのか、コア1に対応付けるのかを選択する。
なお、ソースプログラムのコアへの対応付けは、自動的に行うようにしてもよい。例えば、コア0、コア1が異なるOSを搭載する場合、そのソースプログラムが対応するOSを搭載したコアに、自動的にソースプログラムを対応付ける。
ソースプログラムがコアへ対応付けられると、エディタ部230のコア識別部231aは、選択されたコアを識別し、色対応付け部231bでは、そのコアのコア色と、ソースプログラムとを対応付ける。また、マネージャ部210のコア識別部213aも、選択されたコアを識別する(ステップS17)。
そして、例えば、編集ウィンドウ302のフレーム305をコア色で表示する(ステップS18)。
また、マネージャ部210のコア識別部213aは、選択されたコアを識別すると、そのコアに対応付けられたプロジェクトフォルダを更新する。そしてウィンドウ管理部231は、更新したプロジェクトフォルダをディスプレイ105a上に表示させる(ステップS19)。
図8は、ソースプログラムが登録されたプロジェクトウィンドウを示す図である。
ソースプログラム“sample.c"がコア0に対応付けられた場合、図のように、プロジェクトウィンドウ306において、コア0用プロジェクトフォルダの“Source Files”フォルダに登録される。
ソースプログラムがプロジェクトに登録されると、プロジェクトファイルの更新が行われる(ステップS20)。プロジェクトやソースプログラムの作成や登録を再度行う場合には、ステップS10からの処理を繰返し、作成や登録を行わない場合にはプロジェクト及びソースプログラムの作成処理を終了する(ステップS21)。
上記のような処理によれば、プロジェクト情報やソースプログラムが、どのコアに属するソフトウェア開発用情報なのか、ユーザはディスプレイ105a上で容易に判別することができるようになり、マルチコアプロセッサ向けのソフトウェア開発の煩雑さが軽減される。
次に、図4のデバッグ処理(ステップS3)の詳細を説明する。
図9は、デバッグ処理の流れを示すフローチャートである。
図4のステップS2の処理でターゲットファイルがコアごとに生成されると、デバッガ制御部220のコア識別部224aは、そのターゲットファイルが属するコアを識別する(ステップS30)。その後、デバッガ管理部221は、エミュレータ部240、シミュレータ部250、またはモニタ部260のいずれかのデバッガを選択する(ステップS31)。
次に、選択されたデバッガはターゲットファイルを取り込み(ステップS32)、ターゲットファイルから各種デバッグ情報を抽出し(ステップS33)、シンボル情報を抽出する(ステップS34)。
ここで、例えば、デバッグ情報としてメモリウィンドウ情報がユーザによって選択された場合(ステップS35)、デバッガ制御部220の色対応付け部224bは、メモリウィンドウ情報と、識別されたコアのコア色とを対応付ける(ステップS36)。その後、デバッグデータ管理部223は、メモリウィンドウ情報をもとにコア別アドレステーブルを作成する(ステップS37)。
図10は、コア1のアドレステーブルの例を示す図である。
図のように、アドレステーブルには、コアの番号、アドレス及びデータが管理されている。同様なアドレステーブルが、コア0に対しても作成される。
次に、図10のように作成されたアドレステーブルをもとに、ウィンドウ管理部224は、ディスプレイ105a上にアドレステーブルをメモリウィンドウとして表示する(ステップS38)。
図11は、ディスプレイ上に表示されるメモリウィンドウの例である。
前述のコア色設定部213bにおいてコア0のコア色が赤、コア1のコア色が緑と設定されているので、図10のアドレステーブルをもとに表示されるメモリウィンドウ310では、フレーム311が緑に表示される。
次にデバッガ制御部220の実行/ブレーク管理部222により、デバッガを実行させ、コアのメモリアクセスを検出する(ステップS39)。
続いてコア識別部224aは、メモリアクセスをしたコアを識別する(ステップS40)。そして、前述のアドレステーブルを参照し(ステップS41)、ウィンドウ管理部224は、例えば、アクセスしたコアがコア0の場合には、そのコア色である赤で、アドレス内容(図11の領域312)を強調する(ステップS42)。これによって、どちらのコアがメモリにアクセスしたのかを容易に判別することができる。
デバッグの結果、プログラムに修正する点などがあれば修正し、再度デバッグする。再度デバッグをする必要が無ければ処理を終了する(ステップS43)。
次に、デバッグ時にブレークポイントを設定する場合のデバッグ処理を説明する。
図12は、ブレークポイントを設定するデバッグ処理を示すフローチャートである。
まず、デバッガを起動する(ステップS50)。ここでは、図9のステップS30〜S34の処理を行う。次に、ユーザの入力により、ブレークポイントの設定を行う(ステップS51)。
ブレークポイントの設定が行われると、デバッグデータ管理部223は、コア別のブレークポイントの登録を行う(ステップS52)。
図13は、登録されたブレークポイントの例である。
図のように、ブレークポイントが設定された、コアの番号、アドレス、ソースプログラムの名前、及びそのソースプログラムの行が登録される。
その後、実行/ブレーク管理部222により、デバッガを実行する(ステップS53)。このとき、コアごとに、プログラムカウンタ(PC)をカウントし始める。
そして、実行/ブレーク管理部222では、PC値がブレークポイントに達したか否かを判定し(ステップS54)、達していない場合には、ステップS53に戻りデバッガの実行を継続し、ブレークポイントに達した場合には、デバッガの実行を停止する(ステップS55)。
デバッガの実行が停止されると、ウィンドウ管理部224は、コア識別部224aによりデバッグ情報がいずれのコアに属するかを識別し(ステップS56a)、ディスプレイ105aに、コアごとのデバッグウィンドウ(逆アセンブルウィンドウともいう。)を表示させる(ステップS56)。
図14は、コアごとのデバッグウィンドウの例である。
コア0のデバッグウィンドウ320のフレーム321は、色対応付け部224bにより、コア0のコア色である赤で表示される(ステップS56b)。そして、コア0に属するブレークポイント322によって、停止した行323も赤で表示する(ステップS56c)。
一方、コア1のデバッグウィンドウ330のフレーム331は、色対応付け部224bにより、コア1のコア色である緑で表示される(ステップS56b)。さらに、コア0で設定されたブレークポイント322に連動して、コア1のプログラム実行が停止した行332が、コア0のコア色である赤で表示される(ステップS56c)。これにより、コア1の実行命令が、コア0のブレークポイント322に連動して停止したことが、ディスプレイ105a上で視覚的に容易に判別可能となる。
上記のような図9、図12の処理によれば、デバッグ情報やブレークポイントなどが、どのコアに属するのか、ユーザはディスプレイ105a上で容易に判別することができるようになり、マルチコアプロセッサ向けのソフトウェア開発の煩雑さが軽減される。
次に、図4の性能情報測定(ステップS4)の詳細を説明する。
図15は、性能情報の測定処理を示すフローチャートである。
まず、図5で示したような処理で、プロジェクトの作成及びソースプログラムの編集を行う(ステップS60)。その後、測定種別管理部271は、プロファイラ、サンプラ、カバレージやPAなどから性能情報を測定する測定手段を選択し、測定制御部272は、測定の開始位置や終了位置などの測定範囲を設定する(ステップS61)。例えば、サンプラ測定を選択した場合、測定制御部272は、サンプラ測定用の関数をソースプログラム中に埋め込む。
次にデバッガを起動する(ステップS62)。ここでは、図9のステップS30〜S34の処理を行い、測定するコアの識別(またはユーザによる選択)などを行う。
次に、選択されたコアに対して、ステップS61の処理で選択された測定手段による性能測定を実行する(ステップS63)。
測定データ管理部273は、性能測定結果を取得する(ステップS64)。
図16は、サンプラ測定結果の例である。
測定データ管理部273は、コアの番号、そこで実行された関数の名前、その関数の呼び出し数、及び占有率を取得する。
次に、ウィンドウ管理部274では、取得した性能情報の表示を行う(ステップS65)。このとき、ウィンドウ管理部274のコア識別部274aは、選択されたコアを識別し(ステップS65a)、色対応付け部274bにより、コア0の性能情報は、コア0のコア色である赤で表示し、コア1の性能情報は、コア1のコア色である緑で表示する(ステップS65b)。
図17は、サンプラ測定結果の表示例である。
コア0の性能情報ウィンドウ340において、フレーム341及び性能情報(サンプラ測定結果)342が赤で表示される。一方、コア1の性能情報ウィンドウ350において、フレーム351及び性能情報352が緑で表示される。
次に、得られた性能情報が十分な性能か否かを判定する(ステップS66)。ここで、十分な性能ではない場合には、プログラムの調整(チューニング)などを行った後(ステップS67)、再測定するか否かが判定される(ステップS68)。十分な性能である場合には、再測定するか否かが判定され、再測定する場合には、ステップS60からの処理を繰返し、再測定しない場合には処理を終了する。
このような処理により、測定した性能情報が、どのコアに属するのか、ユーザはディスプレイ105a上で容易に判別することができるようになり、マルチコアプロセッサ向けのソフトウェア開発の煩雑さが軽減される。
次に、タスク解析を行う場合について説明する。
図18は、タスク解析の処理を示すフローチャートである。
まず、図5で示したような処理で、プロジェクトの作成及びソースプログラムの編集を行う(ステップS70)。その後、コンフィギュレータの設定を行い、タスクの優先順位、OSやハンドラの各種設定を行う(ステップS71)。
続いてコンフィギュレーションを行い、OS、カーネルやアプリケーションをビルドする(ステップS72)。
その後、測定種別管理部271は、OSアナライザを選択し、測定制御部272は、測定の開始位置や終了位置などの測定範囲を設定し(ステップS73)、デバッガを起動する(ステップS74)。ここでは、図9のステップS30〜S34の処理を行い、測定するコアの識別(またはユーザによるコアの選択)などを行う。
次に、選択されたコアに対して、OSアナライザにより、OS内フックルーチンにより、OS配下で動作するアプリケーションのタスク遷移状態を解析・測定する(ステップS75)。
測定データ管理部273は、測定データを取得し、タスク一覧のリストなどを生成する(ステップS76)。
次に、ウィンドウ管理部274では、取得したタスク解析結果の表示を行う(ステップS77)。このとき、ウィンドウ管理部274のコア識別部274aは、選択されたコアを識別し(ステップS77a)、色対応付け部274bにより、コア0のタスクは、コア0のコア色である赤で表示し、コア1のタスクは、コア1のコア色である緑で表示する(ステップS77b)。
図19は、タスク解析結果の表示例である。
タスク解析結果の表示ウィンドウ360には、タスクのIDと優先度などのタスク情報が表示されるが、色対応付け部274bにより対応付けられたコア色を用いて表示される。
すなわち、コア0のタスク情報361は、赤で強調表示され、コア1のタスク情報362は緑で強調表示される。
最後に、再測定するか否かが判定され(ステップS78)、再測定する場合には、ステップS70からの処理を繰返し、再測定しない場合には、処理を終了する。
このような処理により、各コアに割り当てられるタスクのバランスが視覚的に容易に判別でき、コアごとの負荷を調整する際にユーザの労力を軽減することができる。
以上のように、図4で示したソフトウェア開発の各工程において、本実施の形態で説明した技術を用いることにより、マルチコアプロセッサ向けのソフトウェアを開発する際の煩雑さが大幅に軽減される。例えば、同じ処理のソースプログラムでも、どのコアで動作する場合を想定したコーディング作業・デバッグ作業・検証作業・チューニング作業であるか、が明確になる。また、現作業がどのコアに関する作業なのかをいつも気にしながらソフトウェアを開発する必要がなくなるので、ソフトウェア開発者の精神的疲労も軽減できる。
なお、以上の実施の形態では、コアが2つの場合について説明してきたが、コアは2以上であってもよい。その場合、赤、緑の他に、黄色、青など、コアごとに特定の色を割り当てればよい。
また、上記の説明では、コアごとに特定のプロジェクトを作成する場合について説明したが、複数のコアで動作する共通プロジェクトを作成するようにしてもよい。その場合、共通プロジェクト用の色を定義するようにしてもよい。
本実施の形態のソフトウェア開発装置の概略を示す図である。 本実施の形態のソフトウェア開発装置の具体的なハードウェア構成例である。 ソフトウェア開発時に必要な機能を示す機能ブロック図である。 ソフトウェア開発の概略の流れを示すフローチャートである。 プロジェクト及びソースプログラムの作成処理の流れを示すフローチャートである。 プロジェクト作成画面を示す図である。 ソースプログラムの編集ウィンドウを示す図である。 ソースプログラムが登録されたプロジェクトウィンドウを示す図である。 デバッグ処理の流れを示すフローチャートである。 コア1のアドレステーブルの例を示す図である。 ディスプレイ上に表示されるメモリウィンドウの例である。 ブレークポイントを設定するデバッグ処理を示すフローチャートである。 登録されたブレークポイントの例である。 コアごとのデバッグウィンドウの例である。 性能情報の測定処理を示すフローチャートである。 サンプラ測定結果の例である。 サンプラ測定結果の表示例である。 タスク解析の処理を示すフローチャートである。 タスク解析結果の表示例である。
符号の説明
10 ソフトウェア開発装置
11 ソフトウェア開発用情報
12 プロセッサコア識別部
13 表示処理部
20 プロジェクトウィンドウ

Claims (7)

  1. マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発装置において、
    前記ソフトウェアを開発する際のソフトウェア開発用情報が、複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別するプロセッサコア識別部と、
    識別結果に応じて、前記ソフトウェア開発用情報がいずれの前記プロセッサコアに属するかを視覚的に判別可能なように表示する表示処理部と、
    前記プロセッサコアごとに異なる色を対応付けるコア色設定部を有し、
    前記表示処理部は、前記プロセッサコアに属する前記ソフトウェア開発用情報に含まれるブレークポイント情報をデバッグウィンドウに表示する際に、前記プロセッサコアごとのデバッグウィンドウを前記プロセッサコアに対応付けられた色で表示し、第1のプロセッサコアのデバッグウィンドウにおいて、第2のプロセッサコアで設定されたブレークポイントに連動して実行が停止した行を、前記第2のプロセッサコアに対応付けられた色で表示する、
    ことを特徴とするソフトウェア開発装置。
  2. 前記ソフトウェア開発用情報は、プロジェクト情報を含むことを特徴とする請求項1記載のソフトウェア開発装置。
  3. 前記ソフトウェア開発用情報は、プログラム開発支援情報を含むことを特徴とする請求項1記載のソフトウェア開発装置。
  4. 前記ソフトウェア開発用情報は、デバッグ情報を含むことを特徴とする請求項1記載のソフトウェア開発装置。
  5. 前記プログラム開発支援情報は、性能情報を含むことを特徴とする請求項3記載のソフトウェア開発装置。
  6. 前記プログラム開発支援情報は、タスク情報を含むことを特徴とする請求項3記載のソフトウェア開発装置。
  7. プロセッサコア識別部、コア色設定部及び表示処理部を備えたソフトウェア開発装置により、マルチコアプロセッサで実行するソフトウェアを開発するソフトウェア開発方法において、
    前記プロセッサコア識別部が、前記ソフトウェアを開発する際のソフトウェア開発用情報が、複数のプロセッサコアのうちいずれのプロセッサコアに属するかを識別し、
    前記表示処理部が、識別結果に応じて、前記ソフトウェア開発用情報がいずれの前記プロセッサコアに属するかを視覚的に判別可能なように表示し、
    前記コア色設定部が、前記プロセッサコアごとに異なる色を対応付け、
    前記表示処理部は、前記プロセッサコアに属する前記ソフトウェア開発用情報に含まれるブレークポイント情報をデバッグウィンドウに表示する際に、前記プロセッサコアごとのデバッグウィンドウを前記プロセッサコアに対応付けられた色で表示し、第1のプロセッサコアのデバッグウィンドウにおいて、第2のプロセッサコアで設定されたブレークポイントに連動して実行が停止した行を、前記第2のプロセッサコアに対応付けられた色で表示する、ことを特徴とするソフトウェア開発方法。
JP2006188630A 2006-07-07 2006-07-07 ソフトウェア開発装置及びソフトウェア開発方法 Expired - Fee Related JP5076381B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2006188630A JP5076381B2 (ja) 2006-07-07 2006-07-07 ソフトウェア開発装置及びソフトウェア開発方法
US11/822,728 US8079014B2 (en) 2006-07-07 2007-07-09 Software development apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006188630A JP5076381B2 (ja) 2006-07-07 2006-07-07 ソフトウェア開発装置及びソフトウェア開発方法

Publications (2)

Publication Number Publication Date
JP2008015940A JP2008015940A (ja) 2008-01-24
JP5076381B2 true JP5076381B2 (ja) 2012-11-21

Family

ID=38920372

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006188630A Expired - Fee Related JP5076381B2 (ja) 2006-07-07 2006-07-07 ソフトウェア開発装置及びソフトウェア開発方法

Country Status (2)

Country Link
US (1) US8079014B2 (ja)
JP (1) JP5076381B2 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060259896A1 (en) * 2005-05-16 2006-11-16 Microsoft Corporation Maintaining reproducibility across multiple software builds
US8434064B2 (en) * 2008-03-28 2013-04-30 Microsoft Corporation Detecting memory errors using write integrity testing
WO2010022758A1 (de) * 2008-08-27 2010-03-04 Siemens Aktiengesellschaft Verfahren und vorrichtung zur datenverarbeitung sowie system umfassend die vorrichtung
US20100064249A1 (en) * 2008-09-05 2010-03-11 Gateway Inc. Visual indicator in GUI system for notifying user of data storage device
JP5456457B2 (ja) * 2009-12-24 2014-03-26 スパンション エルエルシー プログラム開発支援装置及びプログラム開発支援方法
JP5477085B2 (ja) * 2010-03-17 2014-04-23 株式会社リコー マルチコアプロセッサデバイスのためのデバッグ装置
US9606888B1 (en) * 2013-01-04 2017-03-28 Marvell International Ltd. Hierarchical multi-core debugger interface
JP5843801B2 (ja) * 2013-03-19 2016-01-13 株式会社東芝 情報処理装置およびデバッグ方法
JP5934160B2 (ja) * 2013-09-04 2016-06-15 株式会社Nttドコモ デバッグ装置、デバッグ方法及びデバッグプログラム
CN108255693A (zh) * 2016-12-28 2018-07-06 乐视汽车(北京)有限公司 呈现调试信息的方法和装置

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS61243533A (ja) * 1985-04-19 1986-10-29 Fuji Electric Co Ltd プログラム版数管理方式
JPH0581221A (ja) * 1991-09-21 1993-04-02 Fujitsu Ltd 並列プログラム開発支援装置
US5857212A (en) * 1995-07-06 1999-01-05 Sun Microsystems, Inc. System and method for horizontal alignment of tokens in a structural representation program editor
US6990657B2 (en) * 2001-01-24 2006-01-24 Texas Instruments Incorporated Shared software breakpoints in a shared memory system
US7007267B2 (en) * 2001-01-24 2006-02-28 Texas Instruments Incorporated Transparent shared memory access in a software development system
JP2002288003A (ja) * 2001-03-26 2002-10-04 Nec Corp シミュレーション方法およびシミュレーションプログラム
US20030023627A1 (en) * 2001-07-26 2003-01-30 Kerr John M. System and method for indicating a measure of content copy fitting
US20040034541A1 (en) * 2002-08-16 2004-02-19 Alipio Caban Client devices, processor-usable media, data signals embodied in a transmission medium and processor implemented methods
US7719540B2 (en) * 2004-03-31 2010-05-18 Intel Corporation Render-cache controller for multithreading, multi-core graphics processor
US7616207B1 (en) * 2005-04-25 2009-11-10 Nvidia Corporation Graphics processing system including at least three bus devices

Also Published As

Publication number Publication date
US20080010493A1 (en) 2008-01-10
US8079014B2 (en) 2011-12-13
JP2008015940A (ja) 2008-01-24

Similar Documents

Publication Publication Date Title
US8392886B2 (en) System, program product, and methods to enable visual recording and editing of test automation scenarios for web application
US9021428B2 (en) Troubleshooting visuals and transient expressions in executing applications
US8423969B2 (en) Inheritance breakpoints for use in debugging object-oriented computer programs
EP3338179B1 (en) Graphical representation of data in a program code editor
EP0785510B1 (en) Program debugging system for debugging a program having a graphical user interface
US7757207B2 (en) Form skin and design time WYSIWYG for .net compact framework
US8079014B2 (en) Software development apparatus and method
US7398514B2 (en) Test automation stack layering
US8336032B2 (en) Implementing enhanced template debug
CN110457218A (zh) 游戏引擎测试方法、装置、存储介质及电子设备
CN106021101A (zh) 对移动终端进行测试的方法及装置
CN112286782B (zh) 控件遮挡检测方法、软件检测方法、装置及介质
JP2006099798A (ja) コンピュータシステムのオペレーション方法
JP4896909B2 (ja) シナリオ生成装置及びプログラム
US20030177471A1 (en) System and method for graphically developing a program
US20050022170A1 (en) Visual debugging interface
CN117873874A (zh) 界面元素定位方法、系统、介质及电子设备
US7716644B2 (en) Attributed debugging
Ugli et al. Comparative Analysis of Cross-Platform and Native Mobile App Development Approaches
CN115640220A (zh) 测试方法、装置、电子设备及计算机可读存储介质
WO2022194090A1 (zh) 一种多语言混合调试方法及装置
JPH10301809A (ja) Gui操作手順の自動生成方法
JPH02275539A (ja) デバッグ処理方式
JPH09223040A (ja) ソフトウェアのシステムテスト支援装置およびこれに用いるテストシナリオ生成装置
CN115543807B (zh) 一种自动化回归测试方法、装置、计算机设备及存储介质

Legal Events

Date Code Title Description
A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A712

Effective date: 20080730

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090318

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20100301

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20100301

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20110929

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111011

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111209

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120309

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20120403

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120703

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120710

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120813

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150907

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees