JP5526725B2 - ハードウェアブレークポイントを用いたデバッグ方法、デバッグ処理プログラム及びデバッグ装置 - Google Patents
ハードウェアブレークポイントを用いたデバッグ方法、デバッグ処理プログラム及びデバッグ装置 Download PDFInfo
- Publication number
- JP5526725B2 JP5526725B2 JP2009264451A JP2009264451A JP5526725B2 JP 5526725 B2 JP5526725 B2 JP 5526725B2 JP 2009264451 A JP2009264451 A JP 2009264451A JP 2009264451 A JP2009264451 A JP 2009264451A JP 5526725 B2 JP5526725 B2 JP 5526725B2
- Authority
- JP
- Japan
- Prior art keywords
- hardware
- breakpoint
- hardware breakpoint
- debugging
- break
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3636—Software debugging by tracing the execution of the program
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/362—Software debugging
- G06F11/3648—Software debugging using additional hardware
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)
Description
また、後述のハードウェアブレークポイントの決定規則の条件を満たすハードウェアブレークポイントをハードウェアブレーク設定レジスタに設定するためには、ハードウェアブレーク設定レジスタの数は2以上であることが望ましい。
(規則1)ハードウェアブレークポイントテーブルに設定された各ハードウェアブレークポイントのうち、現在のプログラムカウンタに近いものから順番にハードウェアブレークポイントをCPUに設定する。
(規則2)ただし、現在のプログラムカウンタに近いハードウェアブレークポイントよりプログラムカウンタに近い位置に分岐命令又はサブルーチン復帰命令が存在する場合、その分岐命令又はサブルーチン復帰命令の分岐先アドレスにハードウェアブレークポイントを設定する。
(規則3)規則2における分岐命令又はサブルーチン復帰命令が条件分岐命令の場合、分岐先アドレスに加えて、分岐命令の次の命令が置かれているアドレスにもハードウェアブレークポイントを設定する。
2 デバッグ対象装置内のCPU
3 デバッグ対象装置内のメモリ
4 デバッグ対象装置内のデバッガ用通信インターフェース回路
5 デバッグ操作用端末
6 デバッグ操作用端末内のCPU
7 デバッグ操作用端末内のメモリ
8 デバッグ操作用端末内のデバッガ用通信インターフェース回路
9 ディスプレイ
10 キーボード
11 デバッガ用通信インターフェース
Claims (5)
- CPU及びCPUから読み書き可能な記憶手段を有する情報処理装置上で実行するソフトウェアプログラムをハードウェアブレークを用いてデバッグする方法であって、
前記記憶手段に格納され、複数のハードウェアブレークポイントを記録するためのハードウェアブレークポイントテーブルに、ハードウェアブレークポイントの設定を行なうハードウェアブレークポイントテーブル設定ステップと、
前記ハードウェアブレークポイントテーブルに格納されたハードウェアブレークポイントと、デバッグ対象のプログラムを実行しているCPUのプログラムカウンタの値とに基づいて、次に設定すべきハードウェアブレークポイントを決定するハードウェアブレークポイント決定ステップと、
前記ハードウェアブレークポイント決定ステップにより決定した、次に設定すべきハードウェアブレークポイントを、前記情報処理装置の内部に設けられた、ハードウェアブレークポイントを設定するためのハードウェアブレーク設定レジスタに格納するためのハードウェアブレークポイント切換えステップと、
ソフトウェアプログラムの実行開始後、CPUのプログラムカウンタの値が前記ハードウェアブレーク設定レジスタに格納された値と一致することによりハードウェアブレーク割込みが発生した場合に、発生したハードウェアブレーク割込みに対する処理を行なうハードウェアブレーク割込みハンドラが、前記ハードウェアブレーク割込みが発生したCPUのプログラムカウンタの値が前記ハードウェアブレークポイントテーブルに設定されているか否かを判定し、前記ハードウェアブレーク割込みが発生したCPUのプログラムカウンタの値が前記ハードウェアブレークポイントテーブルに設定されていれば、ハードウェアブレークによるデバッグ処理を行なうステップと、を備え
前記ハードウェアブレークポイント決定ステップは、現在のプログラムカウンタが示す命令アドレスと、現在のプログラムカウンタが示す命令アドレス以降の命令アドレスであって、前記ハードウェアブレークポイントテーブルに設定された各ブレークポイントのうち、現在のプログラムカウンタの値に直近のブレークポイントアドレスとの間に分岐命令が存在しない場合には、当該直近のブレークポイントアドレスから順に次に設定すべきハードウェアブレークポイントを決定し、
現在のプログラムカウンタが示す命令アドレスと、前記直近のブレークポイントアドレスとの間に分岐命令が存在する場合には、当該分岐命令の分岐先アドレスを次に設定すべきハードウェアブレークポイントとして決定することを特徴とするソフトウェアプログラムのデバッグ方法。
- 請求項1記載のソフトウェアプログラムのデバッグ方法であって、
CPUに割込みが発生した場合に、前記ハードウェアブレークポイント決定ステップにより次に設定すべきハードウェアブレークポイントを決定し、
前記ハードウェアブレークポイント決定ステップにより決定した次に設定すべきハードウェアブレークポイントを前記ハードウェアブレーク設定レジスタに格納するハードウェアブレークポイント切換えステップを実行することを特徴とするソフトウェアプログラムのデバッグ方法。
- 請求項1記載のソフトウェアプログラムのデバッグ方法であって、
プログラムのデバッグ処理においてハードウェアブレークポイントを切り換える必要が生じた場合に、前記ハードウェアブレークポイント決定ステップにより次に設定すべきハードウェアブレークポイントを決定し、
前記ハードウェアブレークポイント決定ステップにより決定した次に設定すべきハードウェアブレークポイントを前記ハードウェアブレーク設定レジスタに格納するハードウェアブレークポイント切換えステップを実行することを特徴とするソフトウェアプログラムのデバッグ方法。
- 請求項1記載のソフトウェアプログラムのデバッグ方法であって、
前記分岐命令が条件分岐命令であった場合には、当該条件分岐命令の分岐先アドレスに加えて、当該条件分岐命令の次の命令のアドレスについてもハードウェアブレークポイントを設定することを特徴とするソフトウェアプログラムのデバッグ方法。
- CPU及びCPUから読み書き可能な記憶手段を有する情報処理装置上で実行するソフトウェアプログラムをハードウェアブレークを用いてデバッグするためのデバッグ処理プログラムであって、
前記記憶手段に格納され、複数のハードウェアブレークポイントを記録するためのハードウェアブレークポイントテーブルに、ハードウェアブレークポイントの設定を行なうハードウェアブレークポイントテーブル設定ステップと、
前記ハードウェアブレークポイントテーブルに格納されたハードウェアブレークポイントと、デバッグ対象のプログラムを実行しているCPUのプログラムカウンタの値とに基づいて、次に設定すべきハードウェアブレークポイントを決定するハードウェアブレークポイント決定ステップと、
前記ハードウェアブレークポイント決定ステップにより決定した、次に設定すべきハードウェアブレークポイントを、前記情報処理装置の内部に設けられた、ハードウェアブレークポイントを設定するためのハードウェアブレーク設定レジスタに格納するためのハードウェアブレークポイント切換えステップと、
ソフトウェアプログラムの実行開始後、CPUのプログラムカウンタの値が前記ハードウェアブレーク設定レジスタに格納された値と一致することによりハードウェアブレーク割込みが発生した場合に、発生したハードウェアブレーク割込みに対する処理を行なうハードウェアブレーク割込みハンドラが、前記ハードウェアブレーク割込みが発生したCPUのプログラムカウンタの値が前記ハードウェアブレークポイントテーブルに設定されているか否かを判定し、前記ハードウェアブレーク割込みが発生したCPUのプログラムカウンタの値が前記ハードウェアブレークポイントテーブルに設定されていれば、ハードウェアブレークによるデバッグ処理を行なうステップと、を備え、
前記ハードウェアブレークポイント決定ステップは、現在のプログラムカウンタが示す命令アドレスと、現在のプログラムカウンタが示す命令アドレス以降の命令アドレスであって、前記ハードウェアブレークポイントテーブルに設定された各ブレークポイントのうち、現在のプログラムカウンタの値に直近のブレークポイントアドレスとの間に分岐命令が存在しない場合には、当該直近のブレークポイントアドレスから順に次に設定すべきハードウェアブレークポイントを決定し、
現在のプログラムカウンタが示す命令アドレスと、前記直近のブレークポイントアドレスとの間に分岐命令が存在する場合には、当該分岐命令の分岐先アドレスを次に設定すべきハードウェアブレークポイントとして決定すること、
をCPUに実行させることを特徴とするソフトウェアプログラムのデバッグ処理プログラム。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009264451A JP5526725B2 (ja) | 2009-11-20 | 2009-11-20 | ハードウェアブレークポイントを用いたデバッグ方法、デバッグ処理プログラム及びデバッグ装置 |
US12/950,429 US20110126175A1 (en) | 2009-11-20 | 2010-11-19 | Debugging method and debugging device using hardware breakpoints |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009264451A JP5526725B2 (ja) | 2009-11-20 | 2009-11-20 | ハードウェアブレークポイントを用いたデバッグ方法、デバッグ処理プログラム及びデバッグ装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2011108124A JP2011108124A (ja) | 2011-06-02 |
JP5526725B2 true JP5526725B2 (ja) | 2014-06-18 |
Family
ID=44063041
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009264451A Expired - Fee Related JP5526725B2 (ja) | 2009-11-20 | 2009-11-20 | ハードウェアブレークポイントを用いたデバッグ方法、デバッグ処理プログラム及びデバッグ装置 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20110126175A1 (ja) |
JP (1) | JP5526725B2 (ja) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9639451B2 (en) * | 2010-01-25 | 2017-05-02 | Nxp Usa, Inc. | Debugger system, method and computer program product for utilizing hardware breakpoints for debugging instructions |
CN104461806A (zh) * | 2013-09-16 | 2015-03-25 | 中兴通讯股份有限公司 | 一种数据断点监控方法、装置及调试器 |
JP2018128767A (ja) * | 2017-02-07 | 2018-08-16 | ルネサスエレクトロニクス株式会社 | デバッグシステム及び半導体装置 |
US10235272B2 (en) * | 2017-03-06 | 2019-03-19 | Xilinx, Inc. | Debugging system and method |
KR102462864B1 (ko) * | 2017-12-22 | 2022-11-07 | 한국전자통신연구원 | 멀티 코어를 이용한 동적 바이너리 인스트루멘테이션 장치 및 방법 |
US10621067B1 (en) * | 2018-02-05 | 2020-04-14 | Xilinx, Inc. | Data unit breakpointing circuits and methods |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4080650A (en) * | 1976-07-28 | 1978-03-21 | Bell Telephone Laboratories, Incorporated | Facilitating return from an on-line debugging program to a target program breakpoint |
JP2653412B2 (ja) * | 1992-09-22 | 1997-09-17 | 工業技術院長 | ブレークポイント設定方法 |
US5664159A (en) * | 1994-03-08 | 1997-09-02 | Exponential Technology, Inc. | Method for emulating multiple debug breakpoints by page partitioning using a single breakpoint register |
US6681280B1 (en) * | 1998-10-29 | 2004-01-20 | Fujitsu Limited | Interrupt control apparatus and method separately holding respective operation information of a processor preceding a normal or a break interrupt |
JP4187371B2 (ja) * | 1999-11-30 | 2008-11-26 | 富士通株式会社 | 割込制御装置および方法 |
US8103496B1 (en) * | 2000-10-26 | 2012-01-24 | Cypress Semicondutor Corporation | Breakpoint control in an in-circuit emulation system |
US20030074650A1 (en) * | 2001-10-17 | 2003-04-17 | Tankut Akgul | Debugger operating system for embedded systems |
US7225431B2 (en) * | 2002-10-24 | 2007-05-29 | International Business Machines Corporation | Method and apparatus for setting breakpoints when debugging integrated executables in a heterogeneous architecture |
US7299456B2 (en) * | 2003-09-18 | 2007-11-20 | International Business Machines Corporation | Run into function |
US20060200807A1 (en) * | 2005-03-03 | 2006-09-07 | International Business Machines Corporation | Breakpoint timers |
US20070168994A1 (en) * | 2005-11-03 | 2007-07-19 | International Business Machines Corporation | Debugging a computer program in a distributed debugger |
-
2009
- 2009-11-20 JP JP2009264451A patent/JP5526725B2/ja not_active Expired - Fee Related
-
2010
- 2010-11-19 US US12/950,429 patent/US20110126175A1/en not_active Abandoned
Also Published As
Publication number | Publication date |
---|---|
US20110126175A1 (en) | 2011-05-26 |
JP2011108124A (ja) | 2011-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5526725B2 (ja) | ハードウェアブレークポイントを用いたデバッグ方法、デバッグ処理プログラム及びデバッグ装置 | |
US9176737B2 (en) | Controlling the execution of adjacent instructions that are dependent upon a same data condition | |
US7836430B2 (en) | Reversing execution of instructions in a debugger | |
KR102003663B1 (ko) | 디버그 예외 생성 제어 | |
US7620802B2 (en) | Instruction execution device, debugging method, debugging device, and debugging program | |
US9009678B2 (en) | Software debugging with execution match determinations | |
CN111868684A (zh) | 为芯片打补丁的方法及芯片 | |
JP2021527248A (ja) | 予測ミス回復の待ち時間を短縮するための偶発的な分岐予測の格納 | |
JP6846405B2 (ja) | 条件付きロードの抑制 | |
JP3764405B2 (ja) | デバッグ装置及びデバッグ方法 | |
JP2010102454A (ja) | 情報処理装置、情報処理プログラム | |
JP2012083798A (ja) | 解析方法、解析装置及び解析プログラム | |
JP2006221606A (ja) | データプロセッサ | |
JP2008140124A (ja) | データ処理装置 | |
KR102584039B1 (ko) | 콘텍스트 데이터 관리 | |
WO2024069730A1 (ja) | デバッグ装置及びデバッグ方法 | |
JP2007213396A (ja) | デバッグシステム、オペレーションシステム、デバッグ方法、プログラム | |
JP2000122892A (ja) | エミュレータ装置 | |
JP2004318658A (ja) | デバッグ制御装置及びその制御方法 | |
JP2007041887A (ja) | デバッグ装置、そのメモリアクセス方法およびメモリアクセス方法を実現するプログラム | |
WO2007048988A1 (en) | A data processing apparatus and method for handling procedure call instructions | |
JP2008146310A (ja) | プログラムデバッグ装置、プログラムデバッグ方法、及びプログラム | |
JP2002196950A (ja) | デバッグシステム | |
JPH0822401A (ja) | プログラム実行中断方法およびデバッギング装置 | |
JP2006268472A (ja) | フラッシュメモリ上のプログラムデバッグ方法及びデバッグシステム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120815 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130911 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20131008 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20131202 |
|
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: 20140318 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140331 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5526725 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |