JP2006065555A - プログラム開発装置およびプログラム開発方法 - Google Patents

プログラム開発装置およびプログラム開発方法 Download PDF

Info

Publication number
JP2006065555A
JP2006065555A JP2004246706A JP2004246706A JP2006065555A JP 2006065555 A JP2006065555 A JP 2006065555A JP 2004246706 A JP2004246706 A JP 2004246706A JP 2004246706 A JP2004246706 A JP 2004246706A JP 2006065555 A JP2006065555 A JP 2006065555A
Authority
JP
Japan
Prior art keywords
address
program
execution
software
debugger software
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.)
Pending
Application number
JP2004246706A
Other languages
English (en)
Inventor
Koichiro Miyawaki
光一郎 宮脇
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.)
Panasonic Holdings Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2004246706A priority Critical patent/JP2006065555A/ja
Publication of JP2006065555A publication Critical patent/JP2006065555A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】ソフトウェアIPを流用したマイコンの応用プログラム開発において、セキュリティを保護しながら、プログラム開発者に対してデバッグ手段を提供すること。
【解決手段】本発明のプログラム開発装置において、次回実行アドレスが隠蔽領域であった場合、隠蔽領域の情報を持つデバッガソフトから隠蔽領域の終端アドレスを取得し、終端アドレスまで連続してSTEP実行を行う機能をモニタプログラムに備える。
これによりマイコンコアの内部割込みで実現しているSTEP実行についても隠蔽領域のデバッグ情報を隠すことが可能である。
【選択図】図3

Description

本発明は、ソフトウェアIPのデバッグ情報を隠蔽しながら、ソフトウェアIPを流用したプログラム開発を支援するプログラム開発装置に関する。
マイコンの応用プログラム開発において、ソフトウェアIPを流用する場合が多いが、時としてソフトウェアIP内部に、第三者に隠蔽すべき情報(暗号の復号処理など)が含まれる場合がある。
しかし、ソフトウェアIPを流用したプログラム開発においては、プログラム開発者に対してデバッグ手段を提供する必要があり、ここにジレンマが生じる。
このような課題に対して、オブジェクトコードに対して、任意のアドレス空間を隠蔽領域に指定する方法(例えば、特許文献1参照)と、隠蔽領域を示すアドレスと実行アドレスを比較して隠蔽領域に該当する場合はブレーク信号を無効化するハードウェアをマイコン内部に実装する方法などが知られている。
特開2002−189613号公報
上記の特許文献1の方法では、デバッグ対象であるマイコン内部に、現在実行しているアドレスが隠蔽領域か否かを判断するアドレス比較器を実装する必要がある。
特に独立した隠蔽領域が複数個存在した場合は、その数だけ比較器を実装する必要があり、量産コストの観点からは問題があった。
また、特許文献1の方法では、STEP実行のようなマイコンコア内部の割込みを用いたデバッグ機能について対応できない。
この目的を達成するために、本発明のプログラム開発装置は、任意のプログラムの隠蔽領域に対して、次回実行アドレスをデバッガソフトに通知し、前記デバッガソフトから連続STEP実行命令と前記隠蔽領域の終端アドレスを取得することで自動的に前記終端アドレスまでSTEP実行を行い、完了すると前記デバッガソフトにSTEP実行完了通知を行なうモニタプログラムと、取得した前記隠蔽領域の情報から先頭アドレスと前記終端アドレスのテーブル情報を作成し、前記モニタプログラムから前記次回実行アドレスを取得すると前記先頭アドレスと比較し、一致した場合、前記モニタプログラムに前記連続STEP実行命令と前記終端アドレスを通知するデバッガソフトから構成されている。
この構成によって、特許文献1のようにマイコン内部に比較器を実装する必要なく、ソフトウェアによって同様の効果を得ることができる。
本発明のプログラム開発装置によれば、モニタプログラムに、デバッガソフトから連続STEP実行命令と隠蔽領域の終端アドレスを取得することで、自動的に終端アドレスまでSTEP実行を行うことが可能となり、ソフトウェアIPを流用したプログラム開発時において、そのソフトウェアIPの作成者が指定した隠蔽領域の情報を、第三者に対して隠蔽することができる優れたプログラム開発装置を実現することができる。
以下、図面を参照して本発明を実施する為の最良の形態を説明する。
なお、ソフトウェアIP上の隠蔽領域を指定する方法として、特許文献1では、コンパイル時に隠蔽領域を指定し、オブジェクトファイル中に隠蔽領域情報を持たせる方法(ファイル単位、関数単位、領域単位)と、オブジェクトファイルを読み込む前にデバッガソフト(あるいは、その他のアプリケーションソフト)を用いて隠蔽領域を指定する方法を述べているが、本発明で隠蔽領域を指定する方法については、それに準拠する。
図1に本発明を適用したデバッグシステムの一例を示す。
図1に示すように、本デバッグシステムは、プログラム開発者のインターフェースとなるデバッガソフトが動作しているホストコンピュータ101と、マイコンチップ102を有する。
マイコンコア103は、ソフトウェアIPを含んだユーザプログラムが動作するユーザROM空間104、ユーザRAM空間105とモニタプログラムが動作するモニタROM空間106、モニタRAM空間107から、それぞれのメモリ空間上のプログラムを実行する。尚、モニタROM空間106、モニタRAM空間107はマイコンチップ102内部にある必要は必ずしも無い。
モニタROM空間106上で動作するモニタプログラムは、マイコンコア103の内部情報を取得し、マイコンコア103の動作を制御する。
さらに、マイコンチップ102に実装されているデバッグ用I/F108を介して、ホストコンピュータ101上で動作するデバッガソフトと相互に通信を行なう事が可能である。
ユーザプログラムからモニタプログラムへの遷移時には、ユーザプログラムのPC、ステータス情報等がモニタRAM空間107に一旦退避され、ユーザプログラム実行時に復帰される。また、ブレーク回路109もデバッグ用I/F108を介してデバッガソフトから制御可能で、マイコンコア103のアドレス情報、デバッグ情報などをトリガとしてマイコンコアに対してプログラム実行の停止信号を送ることができる。
このようなデバッグシステムにおいて任意のデバッグ機能を実現する場合、以下のような手順を取る(以下の例ではSTEP実行を例に説明する。)。
図2にプログラム開発者から任意のコマンドを受理した状態のデバッガソフトのフローチャート、図3に同状態でのモニタプログラムのフローチャート、図4にデバッガソフトが有する隠蔽領域のアドレス情報テーブルを示す。
ここで、図2のフローチャートが動作するまでにモニタプログラムへの遷移が完了しており、モニタRAM空間107には、次回の実行アドレスを含むユーザプログラム実行時の情報が退避されているものとする。またデバッガソフトはユーザプログラムの読み込み時にソフトウェアIPの隠蔽領域情報を取得しており、複数の隠蔽領域から、それぞれ先頭アドレスと終端アドレスを抽出した図4に示すようなアドレス情報テーブルを作成しているものとする(ここで隠蔽領域の最大個数はN個である。)。
デバッガソフトは、プログラム開発者からSTEP実行のコマンドを受け付けると、モニタプログラムに対して次回実行アドレスをモニタRAM空間107から読み出して送信するようコマンドを発行する(ステップS201)。
モニタプログラムはデバッガソフトからのコマンドを受け付けると(ステップS301)、そのコマンドの内容を判断する。
ここで次回実行アドレス取得のコマンドであった場合(ステップS302)、モニタRAM空間107から次回実行アドレスを読み出し、デバッガソフトにその内容を通知する(ステップS304)。
デバッガソフトが次回実行アドレスを取得すると(ステップS202)、アドレス情報テーブルの通しナンバーを1にセットし(ステップS203)その通しナンバー1に該当する先頭アドレスであるアドレスAと次回実行アドレスを比較する(ステップS204)。
ここで比較の結果が一致していれば、連続STEP実行のコマンドと通しナンバー1に該当する終端アドレスであるアドレスBをモニタプログラムに通知する(ステップS208)。
モニタプログラムは連続STEP実行コマンドを受理すると(ステップS303)、次回実行アドレスがアドレスBを越えるまでSTEP実行を実施し(ステップS305、S306)越えた場合、STEP実行を停止する(ステップS307)。
そしてデバッガソフトに連続STEP実行が完了した事を通知する(ステップS308)。デバッガソフトは連続STEP実行完了の通知を受けると(ステップS209)、隠蔽領域の実行を完了した事をデバッガ画面に表示する(ステップS210)。
また、取得した次回実行アドレスがアドレスAと一致しないのであれば、通しナンバーを1インクリメントし(ステップS205)、通しナンバーがN+1か否かを比較する(ステップS206)。
通しナンバーがN+1でない場合は、ステップ204から同様に処理を行い、通しナンバーNに該当する先頭アドレスであるアドレスCと次回実行アドレスを比較し、一致していれば、同様に連続STEP実行コマンドと通しナンバーNに該当する終端アドレスであるアドレスDをモニタプログラムに通知し、一連の処理を行なう。
一致した場合は次回実行アドレスが隠蔽領域ではないと判断し、通常のSTEP実行を行う(ステップS207)。
本発明にかかるデバッガソフトは、ソフトウェアIP作成者が設定した隠蔽領域に対してデバッグ情報を隠蔽する機能をソフトウェアで実現し、例えばオンチップデバッグ環境において、任意のソフトウェアIPのデバッグ情報を隠蔽する場合でも、プログラム開発対象であるマイコンに対してハードウェア追加の必要無しに機能を実現することができる。
デバッグシステムの構成図 STEP実行時におけるデバッガソフトのフローチャート STEP実行時におけるモニタプログラムのフローチャート 隠蔽領域のアドレス情報テーブルを示す図
符号の説明
101 ホストコンピュータ
102 マイコンチップ
103 マイコンコア
104 ユーザROM空間
105 ユーザRAM空間
106 モニタROM空間
107 モニタRAM空間
108 デバッグ用I/F
109 ブレーク回路

Claims (2)

  1. 任意のプログラムの隠蔽領域に対して、次回実行アドレスをデバッガソフトに通知し、前記デバッガソフトから連続STEP実行命令と前記隠蔽領域の終端アドレスを取得することで自動的に前記終端アドレスまでSTEP実行を行い、前記STEP実行が完了すると前記デバッガソフトにSTEP実行完了通知を行なうモニタプログラムと、
    取得した前記隠蔽領域の情報から先頭アドレスと前記終端アドレスのテーブル情報を作成し、前記モニタプログラムから前記次回実行アドレスを取得すると該次回実行アドレスを前記先頭アドレスと比較し、一致した場合、前記モニタプログラムに前記連続STEP実行命令と前記終端アドレスを通知するデバッガソフトを備えたプログラム開発装置。
  2. モニタプログラムにおいて、
    任意のプログラムの隠蔽領域に対して、次回実行アドレスをデバッガソフトに通知するステップと、
    前記デバッガソフトから連続STEP実行命令と前記隠蔽領域の終端アドレスを取得することで自動的に前記終端アドレスまでSTEP実行を行うステップと、
    前記STEP実行が完了すると前記デバッガソフトにSTEP実行完了通知を行なうステップを備え、
    デバッガソフトにおいて、
    取得した前記隠蔽領域の情報から先頭アドレスと前記終端アドレスのテーブル情報を作成するステップと、
    前記モニタプログラムから前記次回実行アドレスを取得すると該次回実行アドレスを前記先頭アドレスと比較するステップと、
    比較結果に応じて、前記モニタプログラムに前記連続STEP実行命令と前記終端アドレスを通知するステップを備え、
    前記モニタプログラムと前記デバッガソフト間での通信によりデバッグを行うプログラム開発方法。
JP2004246706A 2004-08-26 2004-08-26 プログラム開発装置およびプログラム開発方法 Pending JP2006065555A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004246706A JP2006065555A (ja) 2004-08-26 2004-08-26 プログラム開発装置およびプログラム開発方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004246706A JP2006065555A (ja) 2004-08-26 2004-08-26 プログラム開発装置およびプログラム開発方法

Publications (1)

Publication Number Publication Date
JP2006065555A true JP2006065555A (ja) 2006-03-09

Family

ID=36112009

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004246706A Pending JP2006065555A (ja) 2004-08-26 2004-08-26 プログラム開発装置およびプログラム開発方法

Country Status (1)

Country Link
JP (1) JP2006065555A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008234129A (ja) * 2007-03-19 2008-10-02 Yaskawa Information Systems Co Ltd データ保護機能付き集積回路およびデータ保護機能付き集積回路用のデータ保護プログラム
JP4814319B2 (ja) * 2006-04-24 2011-11-16 パナソニック株式会社 データ処理装置、方法、プログラム、集積回路、プログラム生成装置

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4814319B2 (ja) * 2006-04-24 2011-11-16 パナソニック株式会社 データ処理装置、方法、プログラム、集積回路、プログラム生成装置
JP2008234129A (ja) * 2007-03-19 2008-10-02 Yaskawa Information Systems Co Ltd データ保護機能付き集積回路およびデータ保護機能付き集積回路用のデータ保護プログラム

Similar Documents

Publication Publication Date Title
US20140337980A1 (en) Method, device and terminal for scanning virus
CN104932972A (zh) 一种反动态调试应用程序的方法及装置
US20130074160A1 (en) Method of controlling information processing system, computer-readable recording medium storing program for controlling apparatus
CN108021791B (zh) 数据保护方法及装置
CN105260655A (zh) 一种应用程序启动保护的方法、装置及系统
CN109144525A (zh) 一种网络自适应的软件安装方法与系统
CN103942750A (zh) 录制屏幕图像的方法及装置
CN112422581B (zh) JVM中的Webshell网页检测方法、装置及设备
JPWO2019151013A1 (ja) 情報処理装置、情報処理方法及びプログラム
CN107315677B (zh) 判断应用程序发生异常的方法及装置
JP2006065555A (ja) プログラム開発装置およびプログラム開発方法
CN105809027B (zh) 应用程序的权限控制方法及装置
KR20110057297A (ko) 악성 봇 동적 분석 시스템 및 방법
US20070050619A1 (en) Processor having program protection function
JP5549810B2 (ja) プログラム難読化装置、プログラム制御装置、プログラム難読化方法及びプログラム
JP2006293787A (ja) 無線通信装置の設定方法
JP2003280756A (ja) 情報処理装置のデバッグ手段
WO2019114812A1 (zh) 一种阻止恶意代码编译的方法、存储介质及电子装置
JP2008191788A (ja) 情報処理装置
JP2010039884A (ja) ソフトウェア解析システム
KR101657950B1 (ko) 안티디버깅 장치 및 방법
CN110618967A (zh) 应用程序运行方法、安装包生成方法、装置、设备及介质
JP2010231568A (ja) イベント判別装置、イベント判別プログラム、イベント判別方法
JP2008140124A (ja) データ処理装置
JP4611659B2 (ja) 不正アクセス検出装置、不正アクセス検出方法、プログラム