JP4436036B2 - 情報処理装置、トレース処理方法、プログラム及び記録媒体 - Google Patents

情報処理装置、トレース処理方法、プログラム及び記録媒体 Download PDF

Info

Publication number
JP4436036B2
JP4436036B2 JP2002366345A JP2002366345A JP4436036B2 JP 4436036 B2 JP4436036 B2 JP 4436036B2 JP 2002366345 A JP2002366345 A JP 2002366345A JP 2002366345 A JP2002366345 A JP 2002366345A JP 4436036 B2 JP4436036 B2 JP 4436036B2
Authority
JP
Japan
Prior art keywords
trace
routine
execution
thread
registration
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
JP2002366345A
Other languages
English (en)
Other versions
JP2004199330A (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.)
International Business Machines Corp
Original Assignee
International Business Machines 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 International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2002366345A priority Critical patent/JP4436036B2/ja
Priority to US10/715,769 priority patent/US7284238B2/en
Publication of JP2004199330A publication Critical patent/JP2004199330A/ja
Application granted granted Critical
Publication of JP4436036B2 publication Critical patent/JP4436036B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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
    • G06F11/3636Software debugging by tracing the execution of the program

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

【0001】
【発明の属する技術分野】
本発明は、トレース処理が含まれるルーチンをマルチスレッドで実行可能な情報処理装置、この情報処理装置におけるトレース処理方法、コンピュータを前記情報処理装置として機能させるプログラム、及びこのプログラムを記録したコンピュータ読取り可能な記録媒体に関する。
【0002】
【従来の技術】
従来、プログラムに障害が発生した場合にその原因を解析し、特定するため、プログラムの実行状況を標準出力やファイル等に時系列で出力するトレースという手法が知られている。しかしながら、トレースを用いてより多くの情報を取得しようとすると、本来の業務ロジックの処理以外に、プログラムの実行状況を記録するための余分な処理が必要となるため、プログラム全体としてのパフォーマンスの低下を招く。また、適切な範囲で情報の収集を行わないと、大量のデータが出力されることになり、システム・リソースを圧迫する要因となりうる。
【0003】
そこで、トレースを必要最小限の範囲で実施することによって、パフォーマンスの低下やシステム・リソースの圧迫を抑えることを目的として従来、次のような工夫が行われている。たとえば、収集すべき情報を重要度に応じて分類し、必要とする情報の重要度をユーザが指定することによって重要度の低い情報が取得されるのを防止するものや、特定のスレッドに対するトレース機能を設け、特定のスレッド上で実行される処理についてのみ情報の収集を行うものが知られている。
【0004】
また、スレッドを排他実行スレッドと、他のスレッドとに分類し、排他実行スレッドについては同時実行させないようにしてスレッドの実行順序を制御しつつ情報収集を行うことにより、デバッグ効率の向上を図ったデバッグ装置も知られている(たとえば特許文献1参照)。また、通常のインタプリタと、トレース用のインタプリタとを設け、これらを切り替えて使用することにより、トレース機能の実行可否を制御できるようにした技術も知られている(たとえば特許文献2参照)。
【0005】
【特許文献1】
特開平11−338733号公報
【特許文献2】
特開2002−55848号公報
【0006】
【発明が解決しようとする課題】
しかしながら、これら従来のトレース技術によれば、プログラムの実行前又は実行中にユーザによってなされる設定又は設定変更に従って予め特定されるスレッドやプログラム部分等についてのみトレースの可否を制御し得るだけである。つまり、実際の運用下における種々の実行要求に応じて動的に変化するスレッドの生成状況に対応した情報収集を行うことができない。したがって、従来のトレース技術をマルチスレッド環境下でのみ発生する障害の分析に適用すると、障害の発生条件に合致しない場合、たとえばシングル・スレッドでプログラムが実行されるような場合においてもトレース処理による情報の収集が行われ、収集された情報には障害の発生原因とは無関係のデータが多く含まれることになる。このためパフォーマンスの低下やシステム・リソースの圧迫に加え、トレース出力の分析に大きな労力が必要となる。
【0007】
また、マルチスレッド・プログラムにおいて、複数のスレッドが同時に特定の処理を実行することが原因となって発生する障害は、各スレッドの実行状況などのタイミングに依存する。このため、単一のスレッドで発生する障害に比べて問題の原因を特定することが困難である。
【0008】
さらに、マルチスレッド環境下でのみ発生する障害を分析する目的でトレースを使用する場合、従来のトレース技術によれば、収集する情報には障害の発生原因とは無関係のデータが多く含まれ、多くの余分な処理が発生するので、実際の運用環境においてはトレースの取得が許されない場合がある。
【0009】
本発明の目的は、このような従来技術の問題点に鑑み、複数のスレッドにおいて共通の資源をアクセスすることが原因で発生する問題の解析を、プログラムの実行環境に大きな影響を与えることなく、容易に行うことができるようなトレース技術を提供することにある。
【0010】
【課題を解決するための手段】
この目的を達成するため、本発明に係るトレース処理方法は、処理状況に関する情報を収集するトレース処理が含まれるルーチンをマルチスレッドで実行可能な情報処理装置におけるトレース処理方法であって、起動中のスレッド毎に、実行中のルーチンの登録を前記情報処理装置が行うルーチン登録工程と、実行中のルーチンにおけるトレース処理のレベルを前記登録情報に基づいて前記情報処理装置が判定するレベル判定工程とを具備することを特徴とする。
【0011】
ここで、トレース処理としては、たとえば所定のメッセージや所定の変数の内容をログ・ファイル等に出力する処理が該当する。ルーチンとは何らかの処理を行う一連のプログラムコードであり、たとえば、関数やメソッドが該当する。トレース処理のレベルの判定としては、たとえばトレース処理を行うか否かの判定や、トレース処理を収集可能なすべての情報について行うか、一部の情報については省略して行うか、又はまったく行わないかの判定が該当する。実行中のルーチンの登録とは、実行開始時に登録を行い、実行終了時に登録を抹消することを意味する。
【0012】
この構成において、ルーチン登録工程では、ルーチンの実行のためにスレッドが起動するときにそのルーチンの登録を行い、実行が終了してスレッドが消滅するときにルーチンの登録を抹消する。これにより、実行中のルーチンの登録がスレッド毎に行われる。この実行中のルーチンの登録情報に基づき、レベル判定工程では、実行中のルーチンにおけるトレース処理のレベルを判定する。その際、たとえば、同一ルーチンが異なるスレッドで実行中であればトレース処理は許容され、さもなければ許容されないレベルであると判定することができるが、このような判定結果は、登録情報の経時的変化に応じて刻々変化する。つまり、レベル判定工程では、実行中のルーチンにおけるトレース処理の可否や程度が、どのようなルーチンが他のスレッドで実行中であるかに応じ、動的に判定されることになる。この判定結果に基づき、トレース処理の可否やレベルを動的に制御することができる。
【0013】
本発明に係るトレース処理方法において、前記レベル判定工程では、実行中のルーチンにおけるトレース処理のレベル判定を、そのルーチンと同一又は所定の関係にあるルーチンの登録がなされているか否かに基づいて行うことができる。この場合、前記所定の関係を相互に有するルーチンを規定するテーブルを参照するようにしてもよい。さらに、情報処理装置がこのテーブルの設定又は変更を行うための入力を受け入れ、テーブルの設定又は変更を行うようにしてもよい。前記所定の関係にあるルーチンとしてはたとえば、共有のリソースにアクセスする関係にあるルーチンや、同時に実行すると、何らかの原因により問題が生じ得る関係にあるルーチンが該当する。
【0014】
また、本発明に係るトレース処理方法において、レベル判定工程としてはたとえば、実行中のルーチンにおけるトレース処理のレベル判定に際し、そのルーチンと同一又は所定の関係にあるルーチンの登録がなされており又はなされていない場合、トレース処理のレベルはトレース処理の実行が制限なく許容され又はまったく許容されないレベルである旨の判定を行うものが該当する。あるいは、ルーチンの登録が行われる際に、登録対象ルーチンと同一又は所定の関係にあるルーチンの登録がなされている場合、その旨を示す同時実行情報を、双方の登録情報に対して付加するものが該当する。同時実行情報の付加を行う際に、双方の登録情報に対し、トレース処理のレベルを示すトレース・レベル情報を付加するようにしてもよい。
【0015】
また、本発明に係るトレース処理方法は、トレース処理が含まれるルーチンを含むサーバ・プログラムを情報処理装置が実行する工程と、クライアント・プログラムからの呼び出しに応じて前記ルーチンの実行を情報処理装置が行うアプリケーション実行制御工程と、アプリケーション実行制御工程で発生したトレース処理を情報処理装置が実行するトレース実行工程とを備えてもよい。あるいは、トレース処理が含まれるルーチンを使用するプログラムを情報処理装置が実行する工程と、共有ライブラリに格納された前記トレース処理が含まれるルーチンを情報処理装置が実行する工程と、前記ルーチン実施工程におけるトレース処理を情報処理装置が実行するトレース実行工程とを備えてもよい。これらの場合、トレース実行工程では、トレース処理の実行に際し、レベル判定工程における判定結果を参照することができる。
【0016】
本発明に係る情報処理装置は、上述の本発明に係るトレース処理方法を構成する各工程を行う手段によって構成される。
【0017】
本発明に係るプログラムは、本発明に係る情報処理装置及びそれを構成する各手段としてコンピュータを機能させるものであることを特徴とする。
【0018】
本発明に係る記録媒体は、本発明に係るプログラムを記録したコンピュータ読取り可能な記録媒体であることを特徴とする。
【0019】
【発明の実施の形態】
【0020】
図1は本発明を適用し得るORB(Object Request Broker)による通信基盤を基礎とするクライアント・サーバ・システムを示す。ORBはクライアントとサーバ・オブジェクトとの間の接続を確立し、クライアントがサーバ・オブジェクトのメソッドを呼び出すことを可能にするソフトウェアである。このシステムにおいて稼動するクライアント・サーバ・アプリケーションはサーバ・プログラム1及びクライアント・マシーン2におけるクライアント・プログラムを有する。サーバ・プログラム1が定義するオブジェクトのメソッドはアプリケーション実行制御部3により実行される。サーバ・プログラム1ではたとえばクラスAに属するインスタンスa及びbが定義されており、各インスタンスはトレース処理が含まれたメソッドX及びメソッドYを備えている。アプリケーション実行制御部3は、たとえばJava(登録商標)仮想マシンに相当するものであり、プラットフォームに依存しないバイトコードを実行することによって、サーバのOS(オペレーティング・システム)の如何に関係なく、メソッドの実行を可能にしている。
【0021】
クライアント・プログラムがメソッドXを呼び出すと、アプリケーション実行制御部3は、OSが生成する単一のスレッドにおいて、メソッドXを構成するバイトコードを順次解釈して実行する。異なるクライアント・マシーン2における各クライアント・プログラムがメソッドXを同時に呼び出すと、異なるアプリケーション実行制御部3が、クラスAのインスタンスa及びbのメソッドXを、異なるスレッドにおいて並行して実行する。
【0022】
このようなシステムにおいては、従来のトレース手法によれば、グローバル変数等の静的に設定されたトレース制御情報を参照し、全スレッドにおいてそれぞれトレース処理の必要性の有無を判断していた。これに対し、本発明の第1の実施形態においては図2に示すように、図1のシステムに対し、トレース制御部(Trace Manager)21及びスレッド処理多重度管理テーブル22を導入し、トレース実行部(TraceExectioner)23によるログ・ファイル24へのトレース情報の出力を、起動中のスレッドで実行されているメソッドが同一であるか否かに応じ、動的に制御するようにしている。
【0023】
スレッド処理多重度管理テーブル22は、起動中のスレッド毎に、実行中のメソッドを登録するためのテーブルである。テーブルを構成する各レコードは、起動中のスレッドを識別するためのスレッド識別子、対応スレッドで実行中であるメソッドを特定するクラス名及びメソッド名、並びにトレース・レベルの各項目を有する。トレース・レベルの項目には、対応スレッドで実行中のメソッドにおけるトレース処理の実行可否を示すフラグがセットされる。フラグとしては、トレース処理の実行を許容する旨を示す"5"及びトレース処理の実行を禁止する旨を示す"0"が用いられる。
【0024】
トレース制御部21は、アプリケーション実行制御部3からの要求に応じ、生成されたスレッドの管理テーブル22への登録を行うメソッド"addThreadInfo()"、及び消去されたスレッドの登録を管理テーブル22から抹消するメソッド"removeThreadInfo()"を備えている。またトレース実行部23からの、スレッド識別子を特定した問合せに応じ、そのスレッドにおけるトレース処理の可否について、管理テーブル22を参照してチェックし、回答を行うメソッド"checkTrace()"を備える。トレース実行部23はアプリケーション実行制御部3の要求に応じ、トレース処理の可否をトレース制御部21に問い合せ、回答結果に応じてトレース処理を実行し、又は省略するメソッド"setLogEvent()"を備える。
【0025】
この構成において、クライアント・プログラムがサーバ・プログラム1のメソッドを呼び出すと、サーバではOSによりスレッドが生成され、対応するアプリケーション実行制御部3に対し、呼び出されたメソッドの実行要求がなされる(図中の▲1▼の処理)。
【0026】
この実行要求を受けると、アプリケーション実行制御部3は、呼び出されたメソッドを実際に実行する前に、トレース制御部21に対し、生成されたスレッドに関してスレッド処理多重度管理テーブル22への登録を要求するとともに、生成されたスレッドの識別子、呼び出されたメソッドのクラス名及びメソッド名を通知する(Call addThreadInfo();処理▲2▼)。
【0027】
この要求に応じ、トレース制御部21は、通知されたスレッドの識別子並びにクラス名及びメソッド名をスレッド処理多重度管理テーブル22に登録する(addThreadInfo();処理▲3▼)。その際、トレース制御部21は、登録するメソッドとクラス名及びメソッド名が同一であるメソッドが管理テーブル22に登録済みであるかどうかを調べ、登録済みであることが判明した場合は、それら同一メソッドの登録レコードにおけるトレース・レベルを"5"に設定する(処理▲4▼)。
【0028】
たとえば、スレッド処理多重度管理テーブル22が図2に示すような状態にあり、登録されるスレッドの識別子が"500"、メソッドのクラス名及びメソッド名が"class A"及び"Method X"であるとすれば、これと同一のクラス名及びメソッド名のメソッドが、スレッド識別子が"100"のものとして登録済みであるため、スレッド識別子が"500"及び"100"のレコードにおけるトレース・レベルが"5"にセットされることになる。
【0029】
一方、アプリケーション実行制御部3は、クライアント・プログラムが呼び出したメソッドを実行しているときにトレース処理たとえばプリント命令"Print"Trace2""に遭遇すると、そのトレース処理をトレース実行部23に依頼する(Print"Trace2";処理▲5▼)。この依頼を受けると、トレース実行部23は、トレース制御部21に対し、依頼されたトレース処理の実行の可否について問合せを行う(処理▲6▼)。この問合せには、依頼されたトレース処理に係るスレッドの識別子を伴う。
【0030】
この問合せに応じ、トレース制御部21は、スレッド処理多重度管理テーブル22中の問合せに係るスレッド識別子のレコードにおけるトレース・レベルの値を調べ(checkTrace();処理▲7▼)、トレース処理の可否をトレース実行部23に通知する(処理▲6▼)。この通知に基づきトレース実行部23は、依頼されたトレース処理を実行し(setLogEvent();処理▲8▼)、又は省略する。たとえば、依頼されたトレース処理が、識別子が"100"のスレッドにおけるトレース処理であるとすれば、スレッド処理多重度管理テーブル22における該当レコードのトレース・レベルは"5"であるため、トレース処理が実行されることになる。
【0031】
他方、クライアント・プログラムから呼び出されているずれかのメソッドの実行が終了し、対応するスレッドが消去されるとき、対応するアプリケーション実行制御部3は、消去されるスレッドに関する登録の抹消をトレース制御部21に依頼する(Call removeThreadInfo();処理▲9▼)。この依頼を受けると、トレース制御部21は、登録抹消を依頼されたスレッドに関する登録をスレッド処理多重度管理テーブル22から抹消する(removeThreadInfo();処理(10))。その際、削除するレコードとクラス名及びメソッド名が同一であるレコードについては、さらにクラス名及びメソッド名が同一である他のレコードが存在しない限り、トレース・レベルを"0"とする。たとえば、図2の管理テーブル22の状態においてスレッド識別子が"100"であるレコードが削除されるとき、そのクラス名"class A"及びメソッド名"Method X"が同一であるスレッド識別子が"500"のレコードのトレース・レベルは"0"に変更されることになる。
【0032】
図3〜図5は上述のトレース制御部21の処理を示す。トレース制御部21はアプリケーション実行制御部3からの生成されたスレッドに関する登録依頼又は消去されるスレッドに関する登録抹消依頼を受けた場合は図3の登録処理(addThreadInfo())又は図4の登録抹消処理(removeThreadInfo())を行い、トレース実行部23からのトレース処理の可否に関する問合せがあった場合には図5の実行可否チェック処理(checkTrace())を行う。
【0033】
登録に際しては、図3に示すように、スレッド処理多重度管理テーブル22に対し、図2に示される形式の1レコードを追加するが(ステップ41)、その際、同一メソッドに関する登録が既に行われている場合は双方のレコードにおけるトレース・レベルを"5"にセットし、さもなければ追加レコードにおけるトレース・レベルを"0"にセットする(ステップ42〜44)。登録抹消に際しては図4に示すように、対応レコードを削除するとともに(ステップ51)、削除レコードと同一のメソッドに関するレコードが存在し、かつそのようなレコードが1つのみである場合はそのトレース・レベルを"0"にセットする(ステップ52、53)。トレース処理の実行可否のチェックに際しては、図5に示すように、そのトレース処理に係るスレッドの識別子をキーにして対応レコードのトレース・レベルをチェックし、その結果をトレース実行部23に通知する(ステップ61、62)。
【0034】
このようにしてトレース制御部21は常に、実行中のスレッドのみがすべて登録され、かつクラス名及びメソッド名が同一であるスレッドについては、トレース・レベルが"5"となるようにスレッド処理多重度管理テーブル22の登録内容を維持し、管理するとともに、スレッド処理多重度管理テーブル22に基づいて、各スレッドにおけるトレース処理の実行可否のチェックを行う。
【0035】
本実施形態によれば、トレース処理が含まれるメソッドをマルチスレッドで実行可能なサーバにおいて、起動中のスレッド毎に、実行中のメソッドの登録を行い、実行中のメソッドにおけるトレース処理の可否を登録情報に基づいて判定するようにしたため、判定時点で起動中の各スレッドにおいて実行されているメソッドに応じ、動的にトレース処理の可否の判定を行うことができる。つまり、共有リソースにアクセスすることによる問題が生じる可能性は、どのようなメソッドが同時に実行されているかに応じて刻々変化するが、その変化する状況に応じて、問題解決のためのトレース処理を、問題が生じる可能性がある場合に限定して行うことができる。したがって、プログラムの実行環境に大きな影響を与えることなく、不要な情報の収集を排除したトレース処理を行い、問題解決のための解析の容易化を図ることができる。
【0036】
また、実行中のメソッドにおけるトレース処理の可否の判定を、そのメソッドと同一の関係にあるメソッドの登録がなされているか否かに基づいて行うようにしたため、共有リソースにアクセスすることによる問題が生じる可能性が高い場合に限定してトレース処理を行うことができる。
【0037】
また、スレッド処理多重度管理テーブル22への登録が行われる際に、登録対象メソッドと同一の関係にあるメソッドの登録がなされている場合、その旨を示す同時実行情報を"5"として、双方の登録レコードにおけるトレース・レベルの項目に記録するようにしたため、トレース処理の実行可否の判定結果が必要な時には、スレッド処理多重度管理テーブル22を再度探索することなく直ちに判定結果を得ることができる。
【0038】
以上の実施形態では最も単純な条件、すなわち同一メソッドの同時実行が開始された時点でトレース処理の実行可否の条件を更新するようにしているが、次に示す第2の実施形態では、より複雑な条件でトレース処理実行可否の制御を行うようにしている。すなわちトレース条件管理テーブルを導入し、このテーブルにおいてトレース処理の実行可否の条件をより詳細に規定することにより、トレース処理実行可否の制御をより柔軟に行うことを可能にしている。
【0039】
図6は本発明の第2の実施形態に係るシステムの主要部、及び処理の流れを示す。このシステムでは、第1実施形態におけるトレース制御部21の代わりにトレース制御部31を備え、スレッド処理多重度管理テーブル22のトレース・レベルを、トレース条件管理テーブル32を参照して設定又は変更するようにしている。また、トレース・レベルとして、トレース処理の許容又は省略の2つのレベルのみではなく、より多くのレベルを設定できるようにしている。この設定レベルに応じて、トレース処理可否の問合せに対する回答が行われることになる。他の点については上述第1実施形態の場合と同様である。
【0040】
トレース条件管理テーブル32は複数のトレース・パターンを定義している。テーブル中の各レコードはトレース・パターン、トレース・レベル、及びクラス/メソッドの各項目を有する。トレース・パターンは各トレース・パターンを区別するためのパターン番号、トレース・レベルの項目には対応トレース・パターンにおけるトレース処理の程度を示すレベル番号、クラス/メソッドの項目には対応トレース・パターンが適用されるメソッドを特定するクラス名及びメソッド名が格納される。
【0041】
各レコードにおけるクラス/メソッドの項目には特定の関係を有する複数のメソッドのクラス名及びメソッド名を記録することができる。この特定関係を有するメソッド同士については、同時に実行されるとき、それらのメソッドにおけるトレース処理について、それらのメソッドを前記特定関係を有するものとして規定しているレコードのトレース・レベルが適用される。また、同一のメソッドが同時に実行されているときには、そのメソッドについて規定されているトレース・レベルが適用される。
【0042】
前記特定関係を有するメソッドとしては、たとえば共通のリソースにアクセスするメソッドが該当する。図6の例では、トレース・パターン"2"のレコードにおいて、"class A::Method Y"及び"class B::Method Z"が前記特定関係を有するメソッドとして規定されている。
【0043】
図7〜図9はそれぞれ、トレース制御部31による登録処理、登録抹消処理、及び実行可否チェック処理を示す。トレース制御部31はアプリケーション実行制御部3(図2)からの生成されたスレッドに関する登録依頼又は消去されるスレッドに関する登録抹消依頼を受けた場合は図7の登録処理(addThreadInfo())又は図8の登録抹消処理(removeThreadInfo())を行い、トレース実行部23からのトレース処理の可否に関する問合せがあった場合には図9の実行可否チェック処理(checkTrace())を行う。
【0044】
登録処理においては、図7に示すように、まず、そのスレッドが実行するメソッドと同一のメソッドがクラス/メソッドの項目に記録されているレコードをトレース条件管理テーブル32においてサーチし、対応するトレース・レベルを取得する(ステップ81)。また、当該レコード中に前記特定関係にある他のメソッドのクラス名及びメソッド名が記録されていればそれも取得する(ステップ82)(図6中の処理▲1▼)。
【0045】
次に、登録依頼を受けたスレッドの識別子、並びにそのスレッドが実行するメソッドのクラス名及びメソッド名を記録したレコードを追加することにより、スレッド処理多重度管理テーブル22に対して新たなエントリを加える(ステップ83)。このとき、追加レコードと同一のクラス名及びメソッド名を有するレコードがスレッド処理多重度管理テーブル22中に存在するかどうかを判定し(ステップ84)、存在する場合には、そのレコード及び追加レコード双方のトレース・レベルを前記取得したトレース・レベルに設定する(ステップ86)。また前記取得したクラス名及びメソッド名と同一のものがスレッド処理多重度管理テーブル22中に存在するかどうかを判定し(ステップ84)、存在する場合にはそのレコード及び追加レコード双方のトレース・レベルを、前記取得したトレース・レベルに設定する(ステップ86)。同一又は取得したクラス名及びメソッド名と同一のものを有するレコードが存在しない場合は追加レコードのトレース・レベルを"0"に設定する(ステップ87)。これにより、スレッドの登録が終了する。
【0046】
一方、登録抹消処理においては、図8に示すように、まず、そのスレッドが実行するメソッドと前記特定関係を有するメソッドがトレース条件管理テーブル32において規定されているかどうかを調べ(ステップ91)、特定関係を有するメソッドがあれば、そのクラス名及びメソッド名を取得する(ステップ92)。
【0047】
次に登録抹消依頼を受けたスレッドのレコードを削除する(ステップ93)。このとき、削除レコードに係るメソッドと同一又は前記特定関係にあるメソッドのクラス名及びメソッド名を有するレコードがスレッド処理多重度管理テーブル22中に存在するか否かを判定し(ステップ94)、存在する場合には、そのようなレコードがさらに他に存在する場合を除き、そのレコードのトレース・レベルを"0"に設定する(ステップ95)。これにより、スレッドの登録抹消が終了する。
【0048】
以上のスレッドの登録及び登録抹消の処理を通じて、スレッド処理多重度管理テーブル22には常に、起動中のスレッドのみが、実行中のメソッドを特定するクラス名及びメソッド名並びにトレース処理の可否及びレベルに関する情報とともに登録されることになる。
【0049】
実行可否チェック処理においては、図9に示すように、問合せに係るスレッドに対応するトレース・レベルを、スレッド識別子をキーとしてスレッド処理多重度管理テーブル22から取得し(ステップ101)、トレース実行部23に送る(ステップ102)。
【0050】
トレース実行部23は、送られたトレース・レベルに応じ、トレース処理を実行する。たとえば、トレース・レベルが"0"であればトレース処理を行わず、それ以外の値であれば、その値に応じて、トレース処理を部分的又は全体的に行ったり、一部省略したりする。
【0051】
以上の登録及び登録抹消処理並びにトレース実行可否チェック処理の一例を具体的に示せば、次のようになる。すなわち、スレッド処理多重度管理テーブル22及びトレース条件管理テーブル32の内容が図6に示すような状態にある場合に、たとえば識別子が"400"であるスレッドの登録依頼があったとき、そのスレッドで実行されるメソッドのクラス/メソッド"class A::Method Y"はトレース条件管理テーブル32中に存在し、そのトレース・レベルは"4"である。また、そのレコード中には前記特定関係にある他のメソッド"class B::Method Z"が存在する。そして、この特定関係にあるメソッドはスレッド処理多重度管理テーブル22において識別子が"200"のスレッドに係るものとして既に登録されている。したがって、図7に示されるとおり、登録依頼された識別子"400"のスレッドがスレッド処理多重度管理テーブル22にエントリされるとともに、識別子"200"及び"400"の各レコードのトレース・レベルが"4"に設定される。
【0052】
その後、識別子が"400"のスレッドについてトレース処理の可否の問合せがトレース実行部23(図2)からあったとすれば、スレッド処理多重度管理テーブル22中の当該レコードにおけるトレース・レベル"4"がトレース実行部23に通知される。トレース実行部23はこの通知されたトレース・レベルに応じてトレース処理を実行し、又は一部省略する。
【0053】
一方、アプリケーション実行制御部3から、識別子が"200"のスレッドについて登録抹消依頼があったとすれば、そのスレッドに係るクラス/メソッド"class B::Method Z"はトレース条件管理テーブル32においてトレース・パターン2のレコード中に存在する。また同じレコード中に、特定関係にあるメソッド/クラス"class A::Method Y"も定義されている。したがってこの場合、トレース制御部31は、スレッド処理多重度管理テーブル22における識別子"200"のレコードを削除するとともに、メソッドが特定関係にある識別子"400"のレコードにおけるトレース・レベルを"0"に設定する。以後、識別子"400"のスレッドにおけるトレース処理は禁止されることになる。
【0054】
図10は本発明の第3の実施形態に係るサーバにおけるシステム構成及び処理シーケンスを示す。この実施形態では、サーバ・プログラムが共有ライブラリ中のメソッドを呼び出すことによってマルチスレッドによる処理が行われる場合について示している。図10のシステムはサーバ・プログラム111、サーバ・プログラム111によって使用される共有ライブラリ112、実行中のスレッドのみを登録し、この登録情報に基づいてトレース処理の実行可否の問合せに応答するトレース制御部113、共有ライブラリ中の実行中のメソッドから依頼されるトレース処理の実行要求に応じ、トレース処理の実行可否をトレース制御部113に問い合わせ、その応答に基づいてトレース処理を実行し又は省略するトレース実行部114、及びスレッドの登録がなされるスレッド処理多重度管理テーブル115を備える。スレッド処理多重度管理テーブル115の各レコードには、登録されるスレッドの識別子、スレッドが実行するメソッドのメソッド名、及びトレース・レベルが記録される。トレース・レベルが"0"であれば対応スレッドにおけるトレース処理は禁止され、"5"であれば許容される。
【0055】
この構成において、サーバ・プログラム111が共有ライブラリ112中のメソッドたとえば"SQLExec()"を呼び出すと(処理▲1▼)、メソッドを実行するスレッドが生成される。すると、メソッドはまず、トレース制御部113に対し、生成されたスレッドの登録を依頼する(処理▲2▼)。この依頼は、図11の例ではトレース制御部113中の"addThreadInfo()"を呼び出すことによって行っている。
【0056】
この依頼を受けると、トレース制御部113は、依頼されたスレッドの登録を行う(addThreadInfo();処理▲3▼)。このときトレース制御部113は、スレッド処理多重度管理テーブル115において同一メソッドを実行しているスレッドが登録されているかどうかを調べ、登録されていなければトレース・レベルを"0"とし、登録されていれば、双方のトレース・レベルを"5"に設定する(処理▲4▼)。図10の例では、登録されるスレッド"500"が実行しているメソッド"SQLExec"は、スレッド"100"においても実行されているため、双方のトレース・レベルは"5"に設定されている。
【0057】
共有ライブラリ112中の実行中のメソッドが、トレース処理たとえば"Trace"Trace2""の実行をトレース実行部114に依頼すると(処理▲5▼)、トレース実行部114は、メソッドを実行しているスレッドの識別子を特定して、トレース制御部113に対し、トレース処理の実行可否を問い合わせる(処理▲6▼)。この問合せに応じ、トレース制御部113は、問合せに係るスレッドについて、スレッド処理多重度管理テーブル115におけるトレース・レベルに基づきトレース処理の実行可否を判定し(処理▲7▼)、その結果をトレース実行部に通知する(処理▲6▼)。図10の例ではこの処理をメソッド"checkTrace()"によって行っている。たとえば問合せに係るメソッドが"SQLExec"であれば、トレース・レベルが"5"であるため、トレース処理の実行を許容する旨を通知する。この通知に基づいてトレース実行制御部114は、依頼されたトレース処理の実行を、ログ・ファイル24を出力先として行う(setLogEvent();処理▲8▼)。
【0058】
共有ライブラリ112中の実行中のメソッドが終了するとき、メソッドはそれを実行しているスレッドの登録抹消をトレース制御部113に依頼する(Call removeThreadInfo();処理▲9▼)。この依頼に応じてトレース制御部113はそのスレッドの登録を抹消する(removeThreadInfo();処理(10))。その際、削除するレコードとメソッド名が同一であるレコードについては、さらにメソッド名が同一である他のレコードが存在しない限り、トレース・レベルを"0"とする。たとえば、図10のスレッド処理多重度管理テーブル115の状態においてスレッド識別子が"100"であるレコードが削除されるとき、そのメソッド名"SQLExec"が同一であるスレッド識別子が"500"のレコードのトレース・レベルは"0"に変更される。
【0059】
本実施形態におけるトレース制御部113の処理は、メソッドの識別をメソッド名のみによって行っている以外は、第1実施形態におけるトレース制御部21の場合とほぼ同じである。本実施形態によっても第1実施形態の場合と同様の効果を得ることができる。
【0060】
なお、本発明は上述実施形態に限定されることなく適宜変形して実施することができる。たとえば、上述においてはスレッド処理多重度管理テーブル22においてスレッド識別子の項目が設けられているが、この項目は、スレッド毎にメソッドが登録されていれば、設けなくてもよい。ただし、テーブルのサーチ処理が煩雑になる可能性がある。また、上述においては言及しなかったが、トレース条件管理テーブル32の内容を設定し又は更新するための入力を受け入れ、その設定又は更新を行う手段を設けるようにしてもよい。
【0061】
【発明の効果】
以上説明したように本発明によれば、起動中のスレッド毎に、実行中のルーチンの登録を行い、この登録情報に基づいて、実行中のルーチンにおけるトレース処理のレベルを判定するようにしたため、プログラムの実行環境に大きな影響を与えることなく、共有リソースを同時にアクセスすることによって生じる問題の解決に必要な情報の収集を行うことができる。
【図面の簡単な説明】
【図1】本発明を適用し得るORB通信基盤を基礎とするクライアント・サーバ・システムを示す図である。
【図2】本発明の一実施形態に係るORB通信基盤を基礎とするサーバにおけるシステム及び該システムにおける処理シーケンスを示す図である。
【図3】図2のシステムにおける登録処理を示すフローチャートである。
【図4】図2のシステムにおける登録抹消処理を示すフローチャートである。
【図5】図2のシステムにおける実行可否チェック処理を示すフローチャートである。
【図6】本発明の第2の実施形態に係るシステム及び処理の流れを示す図である。
【図7】図6のシステムのトレース制御部による登録処理を示すフローチャートである。
【図8】図6のシステムのトレース制御部による登録抹消処理を示すフローチャートである。
【図9】図6のシステムのトレース制御部による実行可否チェック処理を示すフローチャートである。
【図10】本発明の第3の実施形態に係るサーバにおけるシステム構成及び処理シーケンスを示す。
【符号の説明】
1,111:サーバ・プログラム、2:クライアント・マシーン、3:アプリケーション実行制御部、21,31,113:トレース制御部、22,115:スレッド処理多重度管理テーブル、23:トレース実行部、24:ログ・ファイル、32:トレース条件管理テーブル、112:共有ライブラリ。

Claims (20)

  1. 所定のトレース情報を出力するトレース処理を行うためのプログラムコードを含むルーチンをマルチスレッドで実行可能な情報処理装置において、
    スレッド毎に、実行されるルーチンの登録を実行開始時に行い、実行終了時に抹消するルーチン登録・抹消手段と、
    実行中のルーチンにおけるトレース処理を行うトレース実行手段とを備え、
    前記トレース実行手段は、前記実行中のルーチンのトレース処理を、該トレース処理の実行時に、該ルーチンと同一又は予め定められた所定の関係にあるルーチンが別のスレッドのものとして前記ルーチン登録・抹消手段により登録されていない場合には省略し、登録されている場合には省略することなく行うものであることを特徴とする情報処理装置。
  2. 前記実行中のルーチンにおけるトレース処理の程度を示すトレース・レベルを、該トレース処理の実行時に、該ルーチンと同一又は予め定められた所定の関係にあるルーチンが別のスレッドのものとして前記ルーチン登録・抹消手段により登録されているか否かに基づいて判定するレベル判定手段を有することを特徴とする請求項1に記載の情報処理装置。
  3. 前記所定の関係を相互に有するルーチンを規定するテーブルを記憶していることを特徴とする請求項1に記載の情報処理装置。
  4. 前記テーブルの設定又は変更を行うための入力を受け入れ、前記テーブルの設定又は変更を行う手段を有することを特徴とする請求項3に記載の情報処理装置。
  5. 前記所定の関係にあるルーチンは、共有のリソースにアクセスする関係にあるルーチンであることを特徴とする請求項1に記載の情報処理装置。
  6. 前記レベル判定手段は、前記登録が行われる際に、登録対象ルーチンと同一又は所定の関係にあるルーチンが別のスレッドのものとして前記ルーチン登録・抹消手段により登録されている場合、その旨を示す同時実行情報を、双方のルーチンの登録情報に対して付加するものであることを特徴とする請求項2に記載の情報処理装置。
  7. 前記レベル判定手段は、前記同時実行情報の付加を行う際に、前記双方のルーチンの登録情報に対し、それぞれそのルーチンのトレース処理が実行される場合における前記トレース・レベルを付加するものであることを特徴とする請求項6に記載の情報処理装置。
  8. 前記報処理装置は、前記トレース処理を行うためのプログラムコードを含むルーチンを含むサーバ・プログラムを記憶しており、クライアント・プログラムからの前記ルーチンの呼び出しに応じて前記ルーチンの実行を行うアプリケーション実行制御部を備え、前記トレース実行手段は、前記実行中のルーチンにおけるトレース処理を、前記アプリケーション実行制御部からの依頼に応じて行うものであり、かつ該トレース処理におけるトレース・レベルを前記レベル判定手段に問い合わせるものであることを特徴とする請求項2に記載の情報処理装置。
  9. 前記情報処理装置は、前記トレース処理を行うためのプログラムコードを含むルーチンを使用するプログラムと、前記トレース処理が含まれるルーチンが格納された共有ライブラリとを記憶しており、前記トレース実行手段は、前記実行中のルーチンにおけるトレース処理を、前記プログラムで使用されるルーチンからの依頼に応じて行うものであり、かつ該トレース処理におけるトレース・レベルを前記レベル判定手段に問い合わせるものであることを特徴とする請求項2に記載の情報処理装置。
  10. 所定のトレース情報を出力するトレース処理を行うためのプログラムコードを含むルーチンをマルチスレッドで実行可能な情報処理装置におけるトレース処理方法であって、
    ルーチン登録手段が、スレッド毎に、実行されるルーチンの登録を、実行開始時に行うルーチン登録工程と、
    ルーチン抹消手段が、スレッド毎に、実行されるルーチンの登録の抹消を、実行終了時に行うルーチン抹消工程と、
    トレース実行手段が、実行中のルーチンにおけるトレース処理を行うトレース実行工程とを備え、
    前記トレース実行工程では、前記実行中のルーチンのトレース処理を、該トレース処理の実行時に、該ルーチンと同一又は予め定められた所定の関係にあるルーチンが別のスレッドのものとして前記ルーチン登録・抹消手段により登録されていない場合には省略し、登録されている場合には省略することなく行うことを特徴とするトレース処理方法。
  11. レベル判定手段が、前記実行中のルーチンにおけるトレース処理の程度を示すトレース・レベルを、該トレース処理の実行時に、該ルーチンと同一又は予め定められた所定の関係にあるルーチンが別のスレッドのものとして前記ルーチン登録・抹消手段により登録されているか否かに基づいて判定するレベル判定工程を有することを特徴とする請求項10に記載のトレース処理方法。
  12. 前記トレース・レベルの判定に際し、前記所定の関係を相互に有するルーチンを規定するテーブルを参照することを特徴とする請求項11に記載のトレース処理方法。
  13. 前記情報処理装置が、前記テーブルの設定又は変更を行うための入力を受け入れ、前記テーブルの設定又は変更を行う工程を有することを特徴とする請求項12に記載のトレース処理方法。
  14. 前記所定の関係にあるルーチンは、共有のリソースにアクセスする関係にあるルーチンであることを特徴とする請求項10に記載のトレース処理方法。
  15. 前記レベル判定工程では、前記登録が行われる際に、登録対象ルーチンと同一又は所定の関係にあるルーチンが別のスレッドのものとして前記ルーチン登録・抹消手段により登録されている場合、その旨を示す同時実行情報を、双方のルーチンの登録情報に対して付加することを特徴とする請求項11に記載のトレース処理方法。
  16. 前記レベル判定工程では、前記同時実行情報の付加を行う際に、前記双方のルーチンの登録情報に対し、それぞれそのルーチンのトレース処理が実行される場合における前記トレース・レベルを付加することを特徴とする請求項15に記載のトレース処理方法。
  17. 前記トレース処理を行うためのプログラムコードを含むルーチンを含むサーバ・プログラムを前記情報処理装置が実行する工程と、クライアント・プログラムからの呼び出しに応じて前記ルーチンの実行を前記情報処理装置が行うアプリケーション実行制御工程とを備え、前記トレース実行工程では、前記アプリケーション実行制御工程で発生したトレース処理を行い、その際、該トレース処理におけるトレース・レベルを前記レベル判定工程により判定することを特徴とする請求項11に記載のトレース処理方法。
  18. 前記トレース処理を行うためのプログラムコードを含むルーチンを使用するプログラムを前記情報処理装置が実行する工程と、共有ライブラリに格納された前記トレース処理が含まれるルーチンを前記情報処理装置が実行するルーチン実行工程とを備え、前記トレース実行工程では、前記ルーチン実行工程におけるトレース処理を行い、その際、該トレース処理におけるトレース・レベルを前記レベル判定工程により判定することを特徴とする請求項11に記載のトレース処理方法。
  19. コンピュータを請求項1〜9のいずれかの情報処理装置及びそれを構成する各手段として機能させることを特徴とするプログラム。
  20. 請求項19のプログラムを記録したことを特徴とするコンピュータ読取り可能な記録媒体。
JP2002366345A 2002-12-18 2002-12-18 情報処理装置、トレース処理方法、プログラム及び記録媒体 Expired - Fee Related JP4436036B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2002366345A JP4436036B2 (ja) 2002-12-18 2002-12-18 情報処理装置、トレース処理方法、プログラム及び記録媒体
US10/715,769 US7284238B2 (en) 2002-12-18 2003-11-18 Multithread tracing method and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002366345A JP4436036B2 (ja) 2002-12-18 2002-12-18 情報処理装置、トレース処理方法、プログラム及び記録媒体

Publications (2)

Publication Number Publication Date
JP2004199330A JP2004199330A (ja) 2004-07-15
JP4436036B2 true JP4436036B2 (ja) 2010-03-24

Family

ID=32588304

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002366345A Expired - Fee Related JP4436036B2 (ja) 2002-12-18 2002-12-18 情報処理装置、トレース処理方法、プログラム及び記録媒体

Country Status (2)

Country Link
US (1) US7284238B2 (ja)
JP (1) JP4436036B2 (ja)

Families Citing this family (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005346414A (ja) * 2004-06-03 2005-12-15 Fujitsu Ltd トレース処理プログラム、方法及び装置
GB2427045B (en) * 2005-06-06 2007-11-21 Transitive Ltd Method and apparatus for converting program code with access coordination for a shared resource
US7559055B2 (en) * 2005-06-15 2009-07-07 Research In Motion Limited Controlling collection of debugging data
US7716530B2 (en) * 2006-02-28 2010-05-11 Microsoft Corporation Thread interception and analysis
US8533530B2 (en) * 2006-11-15 2013-09-10 Qualcomm Incorporated Method and system for trusted/untrusted digital signal processor debugging operations
US8380966B2 (en) * 2006-11-15 2013-02-19 Qualcomm Incorporated Method and system for instruction stuffing operations during non-intrusive digital signal processor debugging
US8341604B2 (en) * 2006-11-15 2012-12-25 Qualcomm Incorporated Embedded trace macrocell for enhanced digital signal processor debugging operations
US8370806B2 (en) * 2006-11-15 2013-02-05 Qualcomm Incorporated Non-intrusive, thread-selective, debugging method and system for a multi-thread digital signal processor
US8484516B2 (en) * 2007-04-11 2013-07-09 Qualcomm Incorporated Inter-thread trace alignment method and system for a multi-threaded processor
US8140911B2 (en) * 2008-03-20 2012-03-20 International Business Machines Corporation Dynamic software tracing
US8782608B2 (en) * 2008-06-17 2014-07-15 International Business Machines Corporation System and method of identifying and tracking software pattern metrics
US9418005B2 (en) 2008-07-15 2016-08-16 International Business Machines Corporation Managing garbage collection in a data processing system
US8843927B2 (en) * 2009-04-23 2014-09-23 Microsoft Corporation Monitoring and updating tasks arrival and completion statistics without data locking synchronization
US8719831B2 (en) * 2009-06-18 2014-05-06 Microsoft Corporation Dynamically change allocation of resources to schedulers based on feedback and policies from the schedulers and availability of the resources
US9378062B2 (en) * 2009-06-18 2016-06-28 Microsoft Technology Licensing, Llc Interface between a resource manager and a scheduler in a process
US8635600B2 (en) * 2009-11-24 2014-01-21 International Business Machines Corporation Systems and methods for virtual machine thread tracing
US9176783B2 (en) 2010-05-24 2015-11-03 International Business Machines Corporation Idle transitions sampling with execution context
US8843684B2 (en) 2010-06-11 2014-09-23 International Business Machines Corporation Performing call stack sampling by setting affinity of target thread to a current process to prevent target thread migration
US8799872B2 (en) 2010-06-27 2014-08-05 International Business Machines Corporation Sampling with sample pacing
US8799904B2 (en) 2011-01-21 2014-08-05 International Business Machines Corporation Scalable system call stack sampling
US8756461B1 (en) * 2011-07-22 2014-06-17 Juniper Networks, Inc. Dynamic tracing of thread execution within an operating system kernel
US8776025B2 (en) 2011-11-04 2014-07-08 International Business Machines Corporation Integrated debugger and code coverage tool
US9087153B2 (en) * 2011-11-04 2015-07-21 International Business Machines Corporation Code coverage framework
US10417121B1 (en) 2011-12-19 2019-09-17 Juniper Networks, Inc. Monitoring memory usage in computing devices
US8954546B2 (en) 2013-01-25 2015-02-10 Concurix Corporation Tracing with a workload distributor
US8924941B2 (en) 2013-02-12 2014-12-30 Concurix Corporation Optimization analysis using similar frequencies
US20130283281A1 (en) 2013-02-12 2013-10-24 Concurix Corporation Deploying Trace Objectives using Cost Analyses
US8997063B2 (en) 2013-02-12 2015-03-31 Concurix Corporation Periodicity optimization in an automated tracing system
US9367427B2 (en) 2013-03-15 2016-06-14 International Business Machines Corporation Embedding and executing trace functions in code to gather trace data
US9436589B2 (en) 2013-03-15 2016-09-06 Microsoft Technology Licensing, Llc Increasing performance at runtime from trace data
CN105339901A (zh) * 2013-04-20 2016-02-17 肯赛里克斯公司 用于自动地控制跟踪器行为的跟踪器列表
US9292415B2 (en) 2013-09-04 2016-03-22 Microsoft Technology Licensing, Llc Module specific tracing in a shared module environment
EP3069241B1 (en) 2013-11-13 2018-08-15 Microsoft Technology Licensing, LLC Application execution path tracing with configurable origin definition
US20240160518A1 (en) * 2022-11-15 2024-05-16 International Business Machines Corporation Dynamic registration of software components for diagnosis of root cause of failure

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4445177A (en) * 1981-05-22 1984-04-24 Data General Corporation Digital data processing system utilizing a unique arithmetic logic unit for handling uniquely identifiable addresses for operands and instructions
US5758061A (en) * 1995-12-15 1998-05-26 Plum; Thomas S. Computer software testing method and apparatus
EP0801348A1 (en) * 1996-04-10 1997-10-15 Hewlett-Packard Company Method of monitoring the operation of a computer
US5896536A (en) * 1996-05-01 1999-04-20 International Business Machines Corp. Data triggered trace support for debugging object oriented programs
US5870606A (en) * 1996-05-01 1999-02-09 International Business Machines Corp. Data triggered trace technique for debugging software programs
US6077311A (en) * 1997-07-09 2000-06-20 Silicon Graphics, Inc. Method and apparatus for extraction of program region
US6182244B1 (en) * 1997-09-10 2001-01-30 International Business Machines Corporation System and method for automatically initiating a tracing facility and dynamically changing the levels of tracing currently active
US6055492A (en) * 1997-12-12 2000-04-25 International Business Machines Corporation System and method for providing trace information data reduction
JPH11338733A (ja) 1998-02-27 1999-12-10 Toshiba Corp デバッグ装置及び記録媒体
US6219827B1 (en) * 1998-03-12 2001-04-17 Hewlett-Packard Company Trace ranking in a dynamic translation system
US6223338B1 (en) * 1998-09-30 2001-04-24 International Business Machines Corporation Method and system for software instruction level tracing in a data processing system
US7013456B1 (en) * 1999-01-28 2006-03-14 Ati International Srl Profiling execution of computer programs
JP2002055848A (ja) 2000-08-11 2002-02-20 Omron Corp プログラム実行方式及び当該プログラム実行方式を格納した記憶媒体
US7080289B2 (en) * 2001-10-10 2006-07-18 Arm Limited Tracing multiple data access instructions
US7120901B2 (en) * 2001-10-26 2006-10-10 International Business Machines Corporation Method and system for tracing and displaying execution of nested functions
US7392505B2 (en) * 2001-11-09 2008-06-24 Microsoft Corporation Task tracing in a distributed computing environment
US7360203B2 (en) * 2004-02-06 2008-04-15 Infineon Technologies North America Corp. Program tracing in a multithreaded processor

Also Published As

Publication number Publication date
JP2004199330A (ja) 2004-07-15
US20040123274A1 (en) 2004-06-24
US7284238B2 (en) 2007-10-16

Similar Documents

Publication Publication Date Title
JP4436036B2 (ja) 情報処理装置、トレース処理方法、プログラム及び記録媒体
JP3270216B2 (ja) ファイル名検出方式
US7904493B2 (en) Method and system for object age detection in garbage collection heaps
US8601469B2 (en) Method and system for customizing allocation statistics
US8141052B2 (en) Instrumenting software for enhanced diagnosability
US7003781B1 (en) Method and apparatus for correlation of events in a distributed multi-system computing environment
US8316120B2 (en) Applicability detection using third party target state
US7665098B2 (en) System and method for monitoring interactions between application programs and data stores
US20080244531A1 (en) Method and system for generating a hierarchical tree representing stack traces
US20080244537A1 (en) Method and system for customizing profiling sessions
US8214809B2 (en) Grid-enabled ANT compatible with both stand-alone and grid-based computing systems
US20090276205A1 (en) Stablizing operation of an emulated system
KR20140025587A (ko) 응용 프로그램의 사용 빈도를 획득하기 위한 방법과 장치
US6735761B1 (en) Compile method frame detection method and device code discarding method and computer
CN113157411B (zh) 一种基于Celery的可靠可配置任务系统及装置
US20170091076A1 (en) Debugging remote vertex code on test machine
US20080320459A1 (en) Method And Systems For Providing Concurrency Control For Addressable Entities
Lee et al. Unified debugging of distributed systems with recon
US10579446B2 (en) Per-request event detection to improve request-response latency
US9032372B2 (en) Runtime environment and method for non-invasive monitoring of software applications
US8635331B2 (en) Distributed workflow framework
US20030204525A1 (en) Application control method, and implementation device and processing program for the same
CN113553098A (zh) Flink SQL作业的提交方法、装置及计算机设备
CN111796972B (zh) 文件热修复方法、装置、设备及存储介质
US11210201B2 (en) Scalable incremental analysis using caller and callee summaries

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20051226

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060111

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060224

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20060830

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060922

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20061030

A912 Re-examination (zenchi) completed and case transferred to appeal board

Free format text: JAPANESE INTERMEDIATE CODE: A912

Effective date: 20061117

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20090910

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091126

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20091222

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: 20091225

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

S202 Request for registration of non-exclusive licence

Free format text: JAPANESE INTERMEDIATE CODE: R315201

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

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

Free format text: PAYMENT UNTIL: 20130108

Year of fee payment: 3

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees