JPH11232138A5 - - Google Patents

Info

Publication number
JPH11232138A5
JPH11232138A5 JP1998330725A JP33072598A JPH11232138A5 JP H11232138 A5 JPH11232138 A5 JP H11232138A5 JP 1998330725 A JP1998330725 A JP 1998330725A JP 33072598 A JP33072598 A JP 33072598A JP H11232138 A5 JPH11232138 A5 JP H11232138A5
Authority
JP
Japan
Prior art keywords
user process
code
auxiliary control
memory
execution
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
JP1998330725A
Other languages
English (en)
Other versions
JPH11232138A (ja
Filing date
Publication date
Priority claimed from US08/996,963 external-priority patent/US5911073A/en
Application filed filed Critical
Publication of JPH11232138A publication Critical patent/JPH11232138A/ja
Publication of JPH11232138A5 publication Critical patent/JPH11232138A5/ja
Withdrawn legal-status Critical Current

Links

Description

【特許請求の範囲】
【請求項1】ランタイムでプログラム実行を変更し、コンピュータメモリにロードされたユーザ・プロセスに補助的な制御コードを組み入れる、ソフトウェアをエミュレートするためのコンピュータで実現される方法であって、
コンピュータメモリにロードされたユーザ・プロセスから少なくとも1つのコード命令のための実行を呼び出し、ユーザ・プロセスの実行を中断させるステップと、
中断したユーザ・プロセスの状態値をコンピュータメモリにロードし、該状態値をユーザ・プロセスのメモリの占有されていない領域に移動するステップと、
ユーザ・プロセスのメモリの占有されていない領域に補助的な制御コードをロードし、ユーザ・プロセスが再開される時に補助的な制御コードを実行するためにユーザ・プロセス状態値を変更するステップと、
ユーザ・プロセスのために変更された状態値を復元し、ユーザ・プロセスの中断を解除し、実行を補助的な制御コードに移すステップと、
ユーザ・プロセスの変更された状態値を使用しユーザ・プロセス命令をデータとして扱うことによって少なくとも1つのユーザ・プロセス命令を置き換え実行するエミュレーション環境を補助的な制御コードによって確立し、補助的な制御コードを組み込むことなくユーザ・プロセスが作り出したであろうレジスタ状態値を維持するステップと、
を含む方法。

【請求項2】ユーザ・プロセス実行が中断されているとき、ユーザ・プロセスのメモリの占有されていない領域にブートストラップ・ソフトウェア・コードをロードし、そして、 ユーザ・プロセスが再開されるときの使用のために、ブートストラップ・ソフトウェア・コードを実行するようユーザ・プロセス状態値を変更するステップと、
変更されたユーザ・プロセス実行が再開されるときブートストラップ・ソフトウェア・コードを実行し、その際ブートストラップ・ソフトウェア・コードは、ユーザ・プロセスに補助的な制御コードをさらにロードし、ユーザ・プロセスの実行を補助的な制御コードに移すステップと、
をさらに含む請求項1に記載の方法。
【請求項3】ユーザ・プロセス・コード命令と一緒に実行されるプロセス・モニタリング・コード命令をユーザ・プロセスにロードし、共同実行が補助的な制御コードによって呼び出されるようにするステップと、
ユーザ・プロセス・コード命令およびプロセス・モニタリング・コード命令の実行の結果を集めるステップと、
をさらに含む請求項1に記載の方法。
【請求項4】補助的な制御コードが少なくとも1つのユーザ・プロセス命令の置換と実行のためにエミュレーション環境を確立し、そして、 少なくとも1つのユーザ・プロセス命令が異なるコンピュータ・マシーン上で実行されたかのように実行される、請求項1に記載の方法。
【請求項5】ユーザ・プロセスに実行プロフィール・コードをロードし、そして、共同でユーザ・プロセスとプロフィール・コードを実行し、その結果、共同実行が補助的な制御コードによって呼び出されるステップと、
共同実行の結果を使用して補助的な制御コードの別の実行を呼び出すステップと、
をさらに含む請求項1に記載の方法。
【請求項6】初期化されていないコード・アクセスを検出するためにユーザ・プロセスのメモリ状態をテストするステップをさらに含む、請求項1に記載の方法。
【請求項7】メモリに敏感なプロシージャの呼出しに対するメモリ状態を集めるためにユーザ・プロセスのメモリ状態をテストするステップをさらに含む、請求項1に記載の方法。
【請求項8】 ランタイムでメモリ内で実行するユーザ・プロセスの命令を置き換え、メモリが状態値を維持し、コンピュータシステムが状態レジスタ値を維持する、エミュレーションのために改良されたコンピュータ実現されたソフトウェア開発ツールであって、
ユーザ・プロセスの命令をユーザ・プロセスのメモリの状態値を使用して置換する補助的な制御コードと、
ユーザ・プロセスのメモリ状態を操りユーザ・プロセス内の補助的な制御コードの実行を可能にし、ユーザ・プロセスに補助的な制御コードをロードするローダと、
呼び出されるときユーザ・プロセスのための状態レジスタ値をコンピュータメモリにロードし、ユーザ・プロセスのために状態レジスタ値を後でユーザ・プロセスのメモリに再ロードするために維持する状態値のローダであって、ユーザ・プロセス実行が呼び出されるときローダのための状態レジスタ値をコンピュータメモリにロードし、ローダのための状態レジスタ値を後にメモリに 再ロードするために維持するローダと、
ユーザ・プロセス上で制御を確立し、ユーザ・プロセスの制御を解除し、そして、 プロセス・コントローラがユーザ・プロセスの実行中断によってユーザ・プロセスに対する制御を確立するとき状態価値のローダはユーザ・プロセスのための状態レジスタ値をコンピュータメモリにロードし、プロセス・コントローラがローダを呼び出し、状態値ローダがローダの状態値を再ロードするプロセス・コントローラと、を備え、
プロセス・コントローラがユーザ・プロセスの制御を解除し、ユーザ・プロセスの実行を再開するとき、状態値のローダはユーザ・プロセスの状態レジスタ値をユーザ・プロセスのメモリに再ロードし、ローダは補助的な制御コードを実行してユーザ・プロセスに付け、そして、ローダはユーザ・プロセスの実行を補助的な制御コードに移すようになっており、
補助的制御コードは、ソフトウェア開発ツールの差込みなしでユーザ・プロセスが作り出したであろうレジスタ状態値を維持し、少なくとも1つの命令を実行し、ソフトウェア開発の差込みなしで作り出されただろうものと同じ結果を作り出すエミュレータと、ユーザ・プロセス中で実行し、ユーザ・プロセスに命令を加えるインストルメンタと、データとして扱われるユーザ・プロセスの命令を使用してエミュレータかインストルメンタを呼び出すかどうか決定する、エグゼクティブをさらに含む、
コンピュータ実現されたソフトウェア開発ツール。
【請求項9】
状態レジスタ値、ユーザ・プロセス・コード、補助的な制御コード、およびローダを備え、コンピュータシステムで使用される、コンピュータで読取り可能なメモリデバイスであって、データが、
前記ユーザ・プロセス・コードのためのコンピュータ状態レジスタに対応する第1のアレイと、
前記ユーザ・プロセス・コードの前記状態レジスタ値がユーザ・プロセスのメモリにおいて前記補助的な制御コードの実行を許可するよう変更されている、前記ユーザ・プロセス・コードの実行可能イメージと、
前記ユーザ・プロセス・コードの前記変更された状態レジスタ値に対応する第2のアレイであって、該第2のアレイのセルは前記ローダのためのメモリロケーション情報を有している、第2のアレイと、
前記補助的な制御コードのオブジェクト・モジュール・イメージと、を有し、
前記補助的な制御コードは、ユーザ・プロセス命令を置き換え、前記ユーザ・プロセス・実行可能イメージに組み入れられており、
前記ユーザプロセス実行可能イメージは、前記組み入れられた補助的な制御コードなしでユーザ・プロセスが作り出したであろうコンピュータレジスタ状態値を維持し、少なくとも1つの命令を実行し、ソフトウェア開発ツールの差込みなしで作り出されただろうものと同じ結果を作り出すエミュレータ・コードと、ユーザ・プロセス中で実行し、ユーザ・プロセスに命令を加えるインストルメンタ・コードと、前記プロセスコードをデータとして使用して、前記エミュレータ・コードまたはインストルメンタ・コードを呼び出すかどうか決定する、エグゼクティブ・コードをさらに含む、
コンピュータで読取り可能なメモリデバイス。
【請求項10】コンピュータメモリにロードされ実行中のユーザ・プロセスに補助的な制御コードを組み入れるためのコンピュータプログラムであって、
コンピュータメモリにロードされたユーザ・プロセスから少なくとも1つのコード命令に対する実行を呼び出し、
ユーザ・プロセスの実行を中断させ、
ユーザ・プロセスの状態値をコンピュータメモリにロードし、ユーザ・プロセスの状態値をユーザ・プロセスのメモリの占有されていない領域に動かし、
補助的な制御コードをユーザ・プロセスのメモリの占有されていない領域にロードし、ユーザ・プロセスが再開されるとき補助的な制御コードを実行するためにユーザ・プロセス状態値を変更し、
変更されたユーザ・プロセスの実行を再開し、 ユーザ・プロセス実行制御を補助的な制御コードにパスし、
補助的な制御コードによって、ユーザ・プロセスのメモリの占有されていない領域にロードされた状態値を使用し、置換命令を作成するためにユーザ・プロセス命令データとして使用し、補助的な制御コードを付けることなくユーザ・プロセスが作り出しただろうレジスタ状態値をロギングして、少なくとも1つのユーザ・プロセス命令を置換し実行するエミュレーション環境を確立する、
機能を実現するコンピュータプログラム。
JP10330725A 1997-12-23 1998-11-20 エミュレーション方法 Withdrawn JPH11232138A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US08/996,963 US5911073A (en) 1997-12-23 1997-12-23 Method and apparatus for dynamic process monitoring through an ancillary control code system
US996963 1997-12-23

Publications (2)

Publication Number Publication Date
JPH11232138A JPH11232138A (ja) 1999-08-27
JPH11232138A5 true JPH11232138A5 (ja) 2006-01-12

Family

ID=25543484

Family Applications (1)

Application Number Title Priority Date Filing Date
JP10330725A Withdrawn JPH11232138A (ja) 1997-12-23 1998-11-20 エミュレーション方法

Country Status (4)

Country Link
US (1) US5911073A (ja)
EP (1) EP0926592B1 (ja)
JP (1) JPH11232138A (ja)
DE (1) DE69823153T2 (ja)

Families Citing this family (41)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6189141B1 (en) * 1998-05-04 2001-02-13 Hewlett-Packard Company Control path evaluating trace designator with dynamically adjustable thresholds for activation of tracing for high (hot) activity and low (cold) activity of flow control
US6164841A (en) * 1998-05-04 2000-12-26 Hewlett-Packard Company Method, apparatus, and product for dynamic software code translation system
US6978462B1 (en) 1999-01-28 2005-12-20 Ati International Srl Profiling execution of a sequence of events occuring during a profiled execution interval that matches time-independent selection criteria of events to be profiled
US6954923B1 (en) 1999-01-28 2005-10-11 Ati International Srl Recording classification of instructions executed by a computer
US7941647B2 (en) 1999-01-28 2011-05-10 Ati Technologies Ulc Computer for executing two instruction sets and adds a macroinstruction end marker for performing iterations after loop termination
US8127121B2 (en) 1999-01-28 2012-02-28 Ati Technologies Ulc Apparatus for executing programs for a first computer architechture on a computer of a second architechture
US8121828B2 (en) 1999-01-28 2012-02-21 Ati Technologies Ulc Detecting conditions for transfer of execution from one computer instruction stream to another and executing transfer on satisfaction of the conditions
US8074055B1 (en) 1999-01-28 2011-12-06 Ati Technologies Ulc Altering data storage conventions of a processor when execution flows from first architecture code to second architecture code
US7065633B1 (en) 1999-01-28 2006-06-20 Ati International Srl System for delivering exception raised in first architecture to operating system coded in second architecture in dual architecture CPU
US7275246B1 (en) 1999-01-28 2007-09-25 Ati International Srl Executing programs for a first computer architecture on a computer of a second architecture
US7111290B1 (en) 1999-01-28 2006-09-19 Ati International Srl Profiling program execution to identify frequently-executed portions and to assist binary translation
US7013456B1 (en) * 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
US7254806B1 (en) 1999-08-30 2007-08-07 Ati International Srl Detecting reordered side-effects
US6934832B1 (en) 2000-01-18 2005-08-23 Ati International Srl Exception mechanism for a computer
US6820258B1 (en) * 2000-08-28 2004-11-16 International Business Machines Corporation System and method for dynamically optimizing executing activations
JP2003173262A (ja) * 2001-12-06 2003-06-20 Hitachi Ltd プログラムチューニングシステムとプログラムチューニング方法およびプログラムと記録媒体
US7415698B2 (en) * 2002-12-09 2008-08-19 International Business Machines Corporation Testing and debugging framework for application builders
US20040117782A1 (en) * 2002-12-16 2004-06-17 Tse-Win Lo Construction method of external links for software execution environment
US8225293B2 (en) * 2003-02-13 2012-07-17 Accurate Technologies Inc. Method for supporting calibration parameters in an ECU
US20040163078A1 (en) * 2003-02-13 2004-08-19 Correa Colt R. Method for rapidly prototyping, testing and verifying application software
US7650596B2 (en) 2003-02-13 2010-01-19 Accurate Technologies Inc. Method for ECU calibration and diagnostics development
US6925928B2 (en) * 2003-09-18 2005-08-09 Anthony Fox Trash compactor for fast food restaurant waste
RU2262737C1 (ru) * 2004-02-09 2005-10-20 Муратов Юрий Викторович Система моделирования и анализа динамических процессов
US20050251790A1 (en) * 2004-04-14 2005-11-10 Robert Hundt Systems and methods for instrumenting loops of an executable program
US20050251791A1 (en) * 2004-04-14 2005-11-10 Robert Hundt Systems and methods for branch profiling loops of an executable program
US7487321B2 (en) * 2004-04-19 2009-02-03 Cisco Technology, Inc. Method and system for memory leak detection
US7293142B1 (en) 2004-04-19 2007-11-06 Cisco Technology, Inc. Memory leak detection system and method using contingency analysis
US7930491B1 (en) 2004-04-19 2011-04-19 Cisco Technology, Inc. Memory corruption detection system and method using contingency analysis regulation
US7716031B2 (en) * 2005-02-25 2010-05-11 Coware, Inc. Interface converter for unified view of multiple computer system simulations
US7742905B2 (en) * 2005-02-25 2010-06-22 Coware, Inc. Method and system for dynamically adjusting speed versus accuracy of computer platform simulation
WO2006091785A1 (en) * 2005-02-25 2006-08-31 Coware, Inc. Interface converter for unified view of multiple computer system simulations
US7899661B2 (en) 2006-02-16 2011-03-01 Synopsys, Inc. Run-time switching for simulation with dynamic run-time accuracy adjustment
US8543367B1 (en) 2006-02-16 2013-09-24 Synopsys, Inc. Simulation with dynamic run-time accuracy adjustment
US8464209B2 (en) * 2007-03-19 2013-06-11 Microsoft Corporation Using collaborative development information in a team environment
US8136103B2 (en) * 2008-03-28 2012-03-13 International Business Machines Corporation Combining static and dynamic compilation to remove delinquent loads
US20090259994A1 (en) * 2008-04-15 2009-10-15 Nokia Corporation Apparatus, Method, and Computer Program Product for Analyzing Program Memory Operations
US8516229B2 (en) 2010-02-05 2013-08-20 International Business Machines Corporation Two pass test case generation using self-modifying instruction replacement
US20160019133A1 (en) * 2014-07-15 2016-01-21 4D Soft Kft. Method for tracing a computer software
CN104461503B (zh) * 2014-11-06 2018-09-11 华自科技股份有限公司 动态组成软件界面的方法与系统
US11182272B2 (en) * 2018-04-17 2021-11-23 International Business Machines Corporation Application state monitoring
CN113127251B (zh) * 2021-04-30 2023-07-18 北京奇艺世纪科技有限公司 代码管理方法、装置、设备及存储介质

Family Cites Families (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4071744A (en) * 1976-05-13 1978-01-31 Pollock Eugene J Loop integration control system
US5581695A (en) * 1990-05-09 1996-12-03 Applied Microsystems Corporation Source-level run-time software code debugging instrument
EP0540680A4 (en) * 1990-07-20 1993-11-18 Temple University Of The Commonwealth System Of Higher Education System for high-level virtual computer with heterogeneous operating systems
US5522072A (en) * 1990-09-04 1996-05-28 At&T Corp. Arrangement for efficiently transferring program execution between subprograms
US5313616A (en) * 1990-09-18 1994-05-17 88Open Consortium, Ltd. Method for analyzing calls of application program by inserting monitoring routines into the executable version and redirecting calls to the monitoring routines
US5680584A (en) * 1991-03-07 1997-10-21 Digital Equipment Corporation Simulator system for code execution and debugging within a multi-architecture environment
CA2109799A1 (en) * 1991-05-24 1992-12-10 Daniel Mark Nosenchuck Optimizing compiler for computers
US5193180A (en) * 1991-06-21 1993-03-09 Pure Software Inc. System for modifying relocatable object code files to monitor accesses to dynamically allocated memory
US5339430A (en) * 1992-07-01 1994-08-16 Telefonaktiebolaget L M Ericsson System for dynamic run-time binding of software modules in a computer system
US5410703A (en) * 1992-07-01 1995-04-25 Telefonaktiebolaget L M Ericsson System for changing software during computer operation
EP0582738A1 (en) * 1992-08-12 1994-02-16 International Business Machines Corporation Language compiler
FR2695460B1 (fr) * 1992-09-09 1994-10-21 Snecma Chambre de combustion de turbomachine à plusieurs injecteurs.
US5367685A (en) * 1992-12-22 1994-11-22 Firstperson, Inc. Method and apparatus for resolving data references in generated code
US5452457A (en) * 1993-01-29 1995-09-19 International Business Machines Corporation Program construct and methods/systems for optimizing assembled code for execution
US5369766A (en) * 1993-03-25 1994-11-29 Taligent, Inc. Object-oriented loader system with support for different load formats
US5487158A (en) * 1993-04-06 1996-01-23 International Business Machines Corporation Method and procedure call mechanism for calling 16-bit functions from 32-bit functions
DE69432974T2 (de) * 1993-05-10 2004-05-27 Thinking Software, Inc., Cupertino Verfahren und vorrichtung zur automatischen analyse eines zielprogramms
US5504914A (en) * 1993-06-23 1996-04-02 National Science Council Multi-level instruction boosting method using plurality of ordinary registers forming plurality of conjugate register pairs that are shadow registers to each other with different only in MSB
US5519866A (en) * 1993-06-28 1996-05-21 Taligent, Inc. Method and apparatus of incrementally linking components of a modeled computer program
JP3190773B2 (ja) * 1993-09-30 2001-07-23 日本電気株式会社 言語処理プログラムのコンパイル処理方法
US5581697A (en) * 1994-01-28 1996-12-03 Sun Microsystems, Inc. Method and apparatus for run-time error checking using dynamic patching
JP2590045B2 (ja) * 1994-02-16 1997-03-12 日本アイ・ビー・エム株式会社 分散処理制御方法及び分散処理システム
US5583988A (en) * 1994-03-09 1996-12-10 National Instruments Corporation Method and apparatus for providing runtime checking features in a compiled programming development environment
EP0679995B1 (en) * 1994-04-26 2000-10-04 Sun Microsystems, Inc. Method and apparatus for encoding data to be self-describing
US5628016A (en) * 1994-06-15 1997-05-06 Borland International, Inc. Systems and methods and implementing exception handling using exception registration records stored in stack memory
US5627981A (en) * 1994-07-01 1997-05-06 Digital Equipment Corporation Software mechanism for accurately handling exceptions generated by instructions scheduled speculatively due to branch elimination
US5652884A (en) * 1994-11-14 1997-07-29 Object Technology Licensing Corp. Method and apparatus for dynamic update of an existing object in an object editor
US5548794A (en) * 1994-12-05 1996-08-20 Motorola, Inc. Data processor and method for providing show cycles on a fast multiplexed bus
US5590331A (en) * 1994-12-23 1996-12-31 Sun Microsystems, Inc. Method and apparatus for generating platform-standard object files containing machine-independent code
US5740440A (en) * 1995-01-06 1998-04-14 Objective Software Technology Dynamic object visualization and browsing system
US5701488A (en) * 1995-06-07 1997-12-23 Motorola, Inc. Method and apparatus for restoring a target MCU debug session to a prior state

Similar Documents

Publication Publication Date Title
JPH11232138A5 (ja)
DE69823153T2 (de) Software-Emulationssystem
JPH11327916A5 (ja)
DE69802834T2 (de) Verbesserung der sicherheit für nicht-vertrauten ausführbaren code
US5274815A (en) Dynamic instruction modifying controller and operation method
Butler et al. User's guide to the p4 programming system
US6988264B2 (en) Debugging multiple threads or processes
US6011920A (en) Method and apparatus for debugging applications on a personality neutral debugger
EP2035926B1 (en) Method and apparatus for handling exceptions during binding to native code
CN101984409B (zh) 一种用于Linux系统测试代码注入的方法
US5365606A (en) Virtual software machine running multiple program modules in a single address space of a target computer
WO2003001373A1 (en) Java rule engine framework
US6292820B1 (en) Porting POSIX-conforming operating systems to Win32 API-conforming operating systems
JPH05216689A (ja) コンピュータ装置およびコンピュータ装置を動作させる方法
CN118939565B (zh) 一种使用Hypervisor对虚拟机单步运行的方法、装置、介质及产品
US20080133214A1 (en) Method and system for child-parent mechanism emulation via a general interface
WO2000036506A1 (en) Process oriented computing environment
Korn Porting UNIX to windows NT
WO2002050664A3 (en) Logical substitution of processor control in an emulated computing environment
Ma et al. Delta Execution: A preemptive Java thread migration mechanism
Pandey et al. Triforce QNX syscall fuzzer
Sokolsky et al. Steering of real-time systems based on monitoring and checking
Marti Compilation techniques for a control-flow concurrent LISP system
Cledou et al. API Generation for Multiparty Session Types, Revisited and Revised Using Scala 3 (Artifact)
Karlsson The GNU Emacs Architecture: Unlocking the Core