JP2004054378A - メッセージ情報表示装置、表示方法、及びそのシステム - Google Patents

メッセージ情報表示装置、表示方法、及びそのシステム Download PDF

Info

Publication number
JP2004054378A
JP2004054378A JP2002207917A JP2002207917A JP2004054378A JP 2004054378 A JP2004054378 A JP 2004054378A JP 2002207917 A JP2002207917 A JP 2002207917A JP 2002207917 A JP2002207917 A JP 2002207917A JP 2004054378 A JP2004054378 A JP 2004054378A
Authority
JP
Japan
Prior art keywords
message
information
task
transmission
display device
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
JP2002207917A
Other languages
English (en)
Inventor
Hideaki Miyake
三宅 秀明
Masayoshi Kareki
枯木 正吉
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 JP2002207917A priority Critical patent/JP2004054378A/ja
Publication of JP2004054378A publication Critical patent/JP2004054378A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

【課題】アプリケーションソフトウェアのタスク間メッセージ通信が起きた後にメッセージ情報表示装置を起動した場合においても、高速に正しくメッセージシーケンスを表示できるメッセージ情報表示装置、表示方法、及びそのシステムを提供する
【解決手段】起動時に、管理情報獲得手段は、OSの管理下にあるメッセージに関する情報を取得し、続いて獲得情報解析手段は、管理情報獲得手段が取得した上記メッセージに関する情報を所定のキューに格納し、次に、キュー操作手段は、キューに格納されている情報と、OSが出力するログとに基づいてメッセージの送信と受信の関係を関連付けるメッセージ情報表示装置、表示方法、及びそのシステムを提供する。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、マルチタスクOS上で動作するタスク間の、メッセージ通信の送受信の関係をメッセージシーケンスとして可視化するメッセージ情報表示装置に関するものである。
【0002】
【従来の技術】
マルチタスクOS(Operating System)上で実行されるアプリケーションソフトウェアにおいて、タスク間で同期通信を行う方法としてタスク間メッセージ通信がある。図23において、例えばソフトウェア開発者2303は、アプリケーションソフトウェアを設計する際に、ソフトウェア設計書2304にタスク間メッセージ通信の送受信の関係をメッセージシーケンス図として示す。ソフトウェア開発者2303は、ソフトウェア設計書2304のメッセージシーケンス図に基づいてアプリケーションソフトウェア2301を開発する。
【0003】
開発後、アプリケーションソフトウェア2301がソフトウェア設計書2304通りに動作しているかを確認する際には、アプリケーションソフトウェア2301におけるタスク間メッセージ通信の動作を、メッセージシーケンス図に可視化するメッセージ情報表示装置2302が有効である。
【0004】
タスク間メッセージ通信の送受信の関係をメッセージシーケンスとして表示することで、ソフトウェア開発者2303は、どのタスクからどのタスクへメッセージが送られたか、タスク間メッセージの発行順番が正しいか等を確認することができ、即ちデバッグに有効である。
【0005】
特開平10−31597号公報に記載の「ソフトウェア試験装置」によると、ソフトウェアの実行時に、タスクから他のタスクに対して送出されたメッセージ信号の送出時刻と受信時刻とをメッセージシーケンスに割り付けて格納し、送受信の関係からメッセージシーケンスを生成する機能を備えている。また、既にソフトウェアが実行され、実行データがファイルデータとして格納されているメッセージ信号の送受信時刻を読み出し、ソフトウェアの動作結果をメッセージシーケンスとして表示する機能を備えている。
【0006】
このように、ソフトウェアをデバッグする際には、ソフトウェアの実行時にメッセージ情報表示装置2302を利用して、メッセージシーケンスをリアルタイムに表示することで、ソフトウェアのソースコードからタスク間メッセージ通信の不具合箇所を特定することが容易になる。
【0007】
図24はメッセージ情報表示装置に関する従来技術を示す図である。尚、メッセージ情報表示装置2302は、例えば携帯端末等の外部端末2420に接続されて使用される。
【0008】
まず、上記メッセージ情報表示装置2302を構成するタスク間メッセージ通信検知手段2402は、上記外部端末2420内のOS2401から、アプリケーションソフトウェア2400内にてタスク間メッセージ通信が発生した旨を受け取る。次に、タスク間メッセージ通信が発生した旨を受け取ると、メッセージ情報獲得手段2404は、上記OS2401が出力するログ2403の中からメッセージ情報を獲得する。
【0009】
続いて、メッセージ状態管理キュー操作手段2406は、上記獲得したメッセージ情報から送信のメッセージ情報と受信のメッセージ情報との組を作成し、メッセージ状態管理キュー2405に格納する。尚、この時点で組が出来ない場合にも、メッセージ情報を一旦メッセージ状態管理キュー2405に格納し、続いて得られるメッセージ情報を用いて組を作成する。
【0010】
上記メッセージ状態管理キュー操作手段2406により送受信の組が作成されると、メッセージシーケンス作成手段2407は当該送受信の組からメッセージシーケンスを作成し、表示手段2408が視覚的に表示する。
【0011】
図25に基本的なタスク間メッセージ通信の出力例を示す。ここに、アプリケーションソフトウェア上で2つのタスク(Task1、Task2)が動作している場合を考える。
【0012】
Task1がタスク間メッセージ通信の送信を発行した後に、Task2がタスク間メッセージ通信の受信を発行した場合を、図25Aのように表示する事ができる(パターンA)。このケースは、Task2がTask1からのタスク間メッセージを待機することなく受信する場合などが該当する。
【0013】
これに対して、Task2がタスク間メッセージ通信の受信を発行した後に、Task1からそのメッセージを受信した場合は、図25Bのように表示する事ができる(パターンB)。このケースは、Task2が予めTask1からのタスク間メッセージを待機している場合等が該当する。
【0014】
尚、上記パターンA及びパターンBのようなタスク間メッセージ通信の送受信の組をペア2501と呼ぶ。
【0015】
ところで、上述したメッセージ情報表示装置は、どのようなアプリケーションソフトウェアのメッセージ通信に対しても対応できるべきである。これは、アプリケーションソフトウェア毎にメッセージ情報表示装置を対応させていたのであれば、開発効率が低下してしまうという理由からである。この理由は、メッセージ情報表示装置に限らず、様々なアプリケーションソフトウェアの開発に関係するデバッグシステム全体に言えることである。
【0016】
言い換えると、上記アプリケーションソフトウェアには、メッセージ通信を表示させるための仕組を組み込むことなく、メッセージ表示装置でメッセージ通信を表示させることが望ましい。こうすることにより、アプリケーションソフトウェアに依存しないメッセージ情報表示装置を作成する事が可能になるのである。
【0017】
上記依存しないメッセージ情報表示装置においては、一般的なOSが従来より有する情報からのみメッセージシーケンス図を生成するのが好ましいといえる。これにより、アプリケーションソフトウェアやOSに、メッセージ情報表示のための仕組みをさほど加えることなく、汎用的なシステムを構築することが可能になるのである。
【0018】
ここで、一般的なOSにおけるメッセージ通信を行う場合の処理を簡単に説明する。例えば、図26に示すように、Task1がTask2にメッセージを送信する場合を例に挙げる。
【0019】
アプリケーション開発者はTask1からTask2へメッセージを送信する際に使用するメッセージIDを予め決めておく必要がある。メッセージIDとは、メッセージ送受信時に使用するメッセージ管理情報ブロック2603を識別するIDである。
【0020】
Task1からTask2へのメッセージ送信に、メッセージID=2を使用するとすると、Task1が、メッセージ2601をTask2へ送信する場合、OS2602により設けられているメッセージ管理情報ブロック2603(ID=2)にメッセージ2601を送信する(状態A)。上記メッセージ2601を受け取ると、OS2602は、上記メッセージ2601をメッセージ管理情報ブロック2603に格納し、カウントを「1」とする(状態B)。当該カウントは、メッセージ管理情報ブロックに格納されているメッセージの数を示す。
【0021】
次に、Task2は、所定のタイミングで、メッセージ管理情報ブロック2603(ID=2)よりメッセージ2601を取り出す(状態C)。この際、OS2602は、カウントを「0」とする。
【0022】
以上より、一般的なOSが有するメッセージ通信の仕組みでは、OSは、タスクがどのメッセージIDのメッセージ管理情報ブロックにメッセージを送信するか、あるいはタスクがどのメッセージIDのメッセージ管理情報ブロックからメッセージを受信するかを管理するものであり、どのタスクに対してメッセージを送信するか、あるいはどのタスクから送信されたメッセージを受信するかといったタスク間メッセージ通信の送受信の関係については、OSでは管理していない事が理解できる。タスク間メッセージ通信の送受信の関係についてはOSより上位層であるアプリケーションで管理する。
【0023】
【発明が解決しようとする課題】
以上のように、各メッセージが送信される相手のタスクについての情報をOSが管理していない場合であっても、タスク間メッセージ通信の送受信の関係をメッセージシーケンスとして表示することが可能である。
【0024】
つまり、図27に示すように、アプリケーションソフトウェア内のTask1〜3が起動した直後の起動ポイント2701にてメッセージ情報表示装置が起動したとする。この場合、各Task1〜3間でのメッセージの送受信はすべてメッセージ情報表示装置が把握可能であるため、送信先のタスクに関する情報を持たないOSからの情報のみでも、問題なくメッセージシーケンス図を生成する事が可能である。
しかし、アプリケーションソフトウェアを先に動作させ、タスク間メッセージ通信が一度でも起きた後にメッセージ情報表示装置を起動した場合、メッセージ状態管理キュー2405には既に送受信されたメッセージ情報は格納されておらず、即ち空のままである。よって、その後タスク間メッセージ通信が起きると、ペアとなるメッセージを正確に把握できないため、正しいメッセージシーケンスを表示することができなくなるという問題があった。以下に、その具体例を挙げる。
【0025】
図28に示すメッセージシーケンスの例は、上記図27における起動ポイント2701を時間軸について後方にずらした場合である。尚、図28おいて、点線で表示している部分が正しく表示されるべきメッセージシーケンスである。
【0026】
ここで、理解に供するため、破線2702、2802に示されたメッセージシーケンスについて説明する。
【0027】
メッセージ情報表示装置2302を起動させた後に、アプリケーションソフトウェアを動作させ、Task2よりメッセージの受信を発行した後、Task1よりメッセージ通送信を発行すると、送受信のペアが正常に作成可能となるため破線2702に示したメッセージシーケンスが作成できる。
【0028】
しかし、先にアプリケーションソフトウェアを動作させTask2よりメッセージの受信を発行2803した後に、メッセージ情報表示装置2302を起動(起動ポイント2801)すると、先の受信のメッセージ情報はメッセージ状態管理キュー2405に格納されておらず空のままである。
【0029】
その後Task1よりメッセージの送信を発行2804すると、正常な送受信のペアではなく、例えばTask2によるメッセージの受信の発行2805とペアとなってしまい、正しいメッセージシーケンスを作成することができない(破線2802)。
従って、起動前に発生したメッセージは取得できないため表示できず、起動ポイント以降のメッセージの送受信について誤ったペアとなり表示されることとなる。
【0030】
つまり、上記表示方法では、必ずアプリケーションソフトウェアの起動より前にメッセージ情報表示装置を起動し、随時メッセージシーケンスを表示する必要があるという問題があった。
【0031】
しかしながら、特にデバッグに利用されるようなシステム(メッセージ情報表示装置)では、通常はデバッグのための装置は起動せず、バグが発生した後、アプリケーションソフトウェア内における該当部分の目星をつけてデバッグするのが通常である。
【0032】
これにより、バグが発生するまでは、デバッグ処理による負荷をかけずにアプリケーションソフトウェアを実行することが可能になるのである。
【0033】
つまり、特にデバッグに利用されるようなシステムでは、デバッグに関わる装置が途中で起動できるようにすることが望まれる。
【0034】
尚、特開平10−31597号公報の「ソフトウェア試験装置」における実施の形態では、ソフトウェア実行管理部がプロセス間のメッセージ通信を行うソフトウェアを起動している。しかし、プロセス間のメッセージ通信を行うソフトウェアの動作途中から、メッセージシーケンスを表示することは考慮されていない。
【0035】
従って、本発明の目的は、アプリケーションソフトウェアのタスク間メッセージ通信が起きた後にメッセージ情報表示装置を起動したとき、即ち途中起動した場合でも、高速に、しかも正しくメッセージシーケンスを表示できるメッセージ情報表示装置、表示方法、及びそのシステムを提供することである。さらに、メッセージ情報表示装置の起動ポイントをまたがって発行したメッセージの送受信に対しても、起動前のメッセージの発行順序とメッセージを発行したタスクを特定し、正しいメッセージシーケンスとして表示することである。
【0036】
【課題を解決するための手段】
本発明は、上記目的を達成するために以下の手段を採用している。
【0037】
本発明に係るメッセージ情報表示装置は、マルチタスクOS上で動作するタスク間で発生するメッセージの、送信と受信の関係を表示するメッセージ情報表示装置を前提としている。
【0038】
ここで、当該メッセージ情報表示装置の起動時に、管理情報獲得手段は、OSの管理下にあるメッセージに関する情報を取得する。続いて獲得情報解析手段は、管理情報獲得手段が取得した上記メッセージに関する情報を所定のキューに格納する。これにより、起動時にまだペアとなっていないメッセージを判別する事が可能となる。次に、キュー操作手段は、キューに格納されている情報と、OSが出力するログとに基づいてメッセージの送信と受信の関係を関連付ける。
【0039】
以上のように、メッセージ情報表示装置の起動時に、初期状態生成手段がOSメッセージ管理情報を取得する構成により、アプリケーションソフトウェアのタスク間メッセージ通信が起きた後に当該メッセージ情報表示装置を起動しても高速に正しくメッセージシーケンスを表示可能となる。尚、OSの管理下にあるメッセージに関する情報は、上記タスク間での送受信が完了していないメッセージに関する情報とすることができる。
【0040】
さらに、OSの管理下にあるメッセージに関する情報から取得できない情報を、メッセージに関するログから取得するログ探索手段を備える構成がある。
【0041】
ログ探索手段を設けることにより、起動ポイント以前の情報についてもタイムスタンプと送信タスクIDを取得できる。このため、メッセージ情報表示装置の起動ポイントをまたがってペアとなるメッセージがある場合に、起動前のメッセージの発行順序やメッセージを発行したタスクを特定し、メッセージシーケンスを表示できるようになる。
【0042】
また、キュー操作手段はメッセージに関する情報に含まれるメッセージの送信元であるタスクIDを用いてメッセージの送信と受信の関係を関連付ける構成とすることができる。
【0043】
この構成では、メッセージ情報表示装置起動ポイントをまたがってペアとなるメッセージがある場合に、ログのサイズに関係なく起動前のメッセージを発行したタスクを特定し、メッセージシーケンスを表示できる。
【0044】
尚、この場合、マルチタスクOS(マルチタスク管理装置)の格納手段が、タスク間で発生するメッセージに関する情報に当該メッセージの送信元のタスクを特定するIDを含めて一旦格納し、同じく送信手段が、メッセージ情報表示装置に上記メッセージに関する情報を送信する構成となる。
【0045】
本発明は、電気通信回線などを介して個別に流通するプログラムとして提供されることもある。このプログラムは、CPUなどを備えた制御装置(コンピュータ)と協働し、この制御装置を、上述のメッセージ情報表示装置として機能させる。例えばこの制御装置がプログラムに従って記憶手段に対する制御を行ったり、当該制御装置が動作したりすると、本発明は、メッセージ情報表示方法として実施される。
【0046】
【発明の実施の形態】
以下に、本発明の実施の形態を説明し、本発明の理解に供する。尚、以下の実施の形態は、本発明を具体化した一例であって、本発明の技術的範囲を限定する性格のものではない。
【0047】
(実施の形態1)
本実施の形態1においては、メッセージ情報表示装置を、マルチタスクOS上でのアプリケーション開発時に利用し、タスク間メッセージ通信を表示する例を説明する。
【0048】
まず、最初に、マルチタスクOS上でのアプリケーション開発の構成について説明する。図1に示すように、本発明に係るメッセージ情報表示装置101は、例えば携帯端末等の外部端末102に接続されて使用される。但し、例えば上記外部端末102自体は、汎用的に用いられるパーソナルコンピュータ上でシミュレータ環境として構築されても良い。また、上記メッセージ情報表示装置101も、当該パーソナルコンピュータ上でデバッグ用ソフトウェアとして実行されてもかまわない。
【0049】
尚、上記メッセージ情報表示装置101の動作の理解に供するため、当該メッセージ情報表示装置101の説明に先立ち、図2を用いて外部端末102の詳細について説明する。
【0050】
図2において、外部端末102内では、OS103及びアプリケーションソフトウェア104が動作しており、ソフトウェア開発者はOS103上で動作するマルチタスクのアプリケーションソフトウェア104を開発しているものとする。当該アプリケーションソフトウェア104上では、複数のタスク201が動作しており、上記OS103の機能を利用して当該タスク201間でタスク間メッセージ通信を行う。
【0051】
上記OS103には、アプリケーションソフトウェアが発行したシステムコールの処理をするシステムコール処理部202、システムコール処理に基づいてOS管理情報を変更するOS管理情報変更部203、タスク間メッセージ通信の状態を管理するOSメッセージ管理情報204、システムコール処理基づいてOSが実行した処理の内容をログ104に出力するログ出力部205、ログ104にOSの実行履歴を出力したことを上記メッセージ情報表示装置101に通知するデバッガ通知部206からなる。
【0052】
上記環境において、例えば図2におけるTask1がTask2に対してタスク間メッセージ通信を行う場合、上記Task1は、OS103に対して、「タスク間メッセージ通信の送信」を行うためのシステムコールを発行する(図25:パターンAに該当)。ここに、システムコールとは、各タスクが、OSが提供するAPI(Application Program Interface)等を呼び出す処理であり、タスクがOSの機能を利用する際に用いられる。
【0053】
上記Task1によりシステムコールが発行されると、OS103を構成するシステムコール処理部202は、上記Task1より受信したTask2へのメッセージ及びその他必要な情報をOS管理情報変更部203に送信する。
上記OS管理情報変更部203が上記メッセージ等を受信すると、当該受信した情報に基づいて、例えばメモリ内に構成されるOSメッセージ管理情報204を更新する。尚、更新の説明に先立ち、OSメッセージ管理情報204の構成について簡単に説明する。OSメッセージ管理情報204は、図3に示すOSメッセージ管理情報ブロック207が複数設けられて構成される。当該OSメッセージ管理情報ブロック207は、OS103によりメッセージID301ごとに管理される。OSメッセージ管理情報ブロック207内には、タスク間メッセージ通信によって待ち状態になるタスクをリスト構造で管理する待ちタスクリスト(タスクID307)へのアドレス302、メッセージ送信時にデータを格納しメッセージ受信時にはデータを格納するためのバッファのアドレスを格納するバッファアドレス303、送信されているメッセージの数を表す送信カウント304、受信されているメッセージの数を表す受信カウント305からなるが、詳細については随時説明する。
【0054】
さて、上記OS管理情報変更部203が上記メッセージ等を受信すると、図4Aに示す初期状態から、図4Bに変更する。即ち、受信した上記メッセージ等に対応するOSメッセージ管理情報ブロック207の、バッファアドレス303を参照し、受信したメッセージを当該アドレスに対応するバッファ領域に格納する。また、送信カウント304の値に1を加算する。これにより、Task1からのメッセージは一旦OS103の管理下に置かれる。
【0055】
続いて、Task2が「タスク間メッセージ通信の受信」を発行することによりTask1からのメッセージの受信処理を行う。このシステムコールがシステムコール処理部202を介してOS管理情報変更部203に伝えられると、当該OS管理情報変更部203は、図4Cに示すように上記バッファに格納されたメッセージを取り出してTask2に送信すると共に、送信カウント304から1を減算する。
【0056】
以上により、Task1とTask2間でのタスク間メッセージ通信が完了する。尚、上記OS管理情報変更部203による各処理は、ログ出力部205に送信され、当該ログ出力部205は、タスク間メッセージ通信の実行履歴であるメッセージ情報ログ105をログ104に追記する。
上記は、図25におけるパターンAに該当する処理であるが、念のため図25パターンBの際の処理について、図5を用いて簡単に説明する。初期状態はパターンAと同様に待ちタスクID307及びバッファ306内はNULLであり、送信カウント304と受信カウント305は0である(図5A)。この状態で、Task2から「タスク間メッセージ通信の受信」が発行されると、OS管理情報変更部203は、対応するOSメッセージ管理情報ブロック207のバッファアドレスを参照し、アドレスが指しているバッファ306に、Task2より与えられたメモリアドレスを格納する。また、受信カウント305に1を加算し、さらに待ちタスクリスト(タスクID307)にTask2を一意に示すタスクID(ここでは例えば2)を格納する(図5B)。
【0057】
続いて、Task1が「タスク間メッセージ通信の送信」を発行すると、上記OS管理情報変更部203は、バッファ306に格納されている上記メモリアドレスに、Task1より受信したメッセージを格納する。また、上記OS管理情報変更部203は、受信カウント305から1を減算すると共に、待ちタスクリスト(タスクID307)より上記タスクIDを取得して、レディキューに登録する(図5C)。
【0058】
ここで、上記レディキューとは、マルチタスクOSがタスクの実行を制御するためのキューであり、当該キューに登録されたタスクが順に実行される。つまり、上記Task1による「タスク間メッセージ通信の送信」の発行の後にTask2がOS103により実行される事になる。
【0059】
Task2が実行されると、指定した上記メモリアドレスに格納されているメッセージを受信する。
【0060】
以上が、上記外部端末102内のタスク間メッセージ通信の仕組みである。
【0061】
次に、ログ104の構成について説明する。当該ログ104はメモリあるいはファイルからなり、図1においては、外部端末102内に設けられているが、例えばメッセージ情報表示装置101内に設けられてもかまわない。また、シミュレーション環境などにおいては、例えば外部端末102やメッセージ情報表示装置101を実行するパーソナルコンピュータ内に設けられても良い。
【0062】
上記ログは、OS103のタスク生成、割込み発生、システムコール発行等の動作が起こる毎に、ログ出力部205により出力(追加)される。尚、ここでは、当該発明に直接関係するメッセージ情報ログについてのみ説明を行う。
【0063】
図6に示すように、上記メッセージ情報ログ105には、発行タスクID601、タイムスタンプ602、メッセージID603、メッセージデータ604、機能コード605等が格納されている。つまりログ出力部205はOS管理情報変更部203がOSメッセージ管理情報204を変更する毎に、上記各情報をメッセージ情報ログ105としてログ104に追記している。尚、上記機能コード605には、当該メッセージが「送信発行」に属するのかまたは「受信発行」に属するのかといった情報が含まれている。
【0064】
また、上記ログ出力部205がログを出力すると、当該出力した旨がデバッガ通知部206を介してメッセージ情報表示装置101に送信される仕組みになっている。
【0065】
以上が、上記外部端末102内での、タスク間メッセージ通信に関する処理である。
【0066】
次に本発明に係るメッセージ情報表示装置101の処理について図1、図7を用いて説明する。
【0067】
メッセージ情報表示装置101は、タスク間メッセージ通信検知手段111、メッセージ情報獲得手段112、メッセージ状態管理キュー操作手段113、メモリ等に設けられるメッセージ状態管理情報109、メッセージシーケンス作成手段114、表示手段115を備えている。尚、上記各手段は、上述した従来技術にて述べた処理と同様の処理を行うため、異なる点のみ説明する。また、上記メッセージ情報表示装置101は、上記に加えて初期状態生成手段106を備えている。当該初期状態生成手段106は、さらに、管理情報獲得手段107と獲得情報解析手段108より構成されている。
【0068】
まず、上記外部端末102が起動した後、タスク間メッセージ通信がまだ行われていない状態で、メッセージ情報表示装置101を動作させた場合について説明する。
【0069】
メッセージ情報表示装置101を起動すると、初期状態生成手段106の管理情報獲得手段107が、OSメッセージ管理情報204から、メッセージID301、待ちタスクリスト(タスクID307)と送信カウント304及び受信カウント305を受信する(図7:S701→S702)。尚、当該受信は、例えば上記OS管理情報変更部203から送信される情報を受信する場合や、直接上記OSメッセージ管理情報204にアクセスして取得する場合を含むものとする。なお、上記OS管理情報変更部203が送信する場合は上記OS管理情報変更部203が送信手段として機能することになる。
【0070】
管理情報獲得手段107がOSメッセージ管理情報を受信すると、獲得情報解析手段108はメッセージ状態管理キュー110の初期状態を作成する。ここに、上記メッセージ状態管理キュー110のデータ構造を図8に示す。
【0071】
図8に示したメッセージ状態管理キュー110は、OSメッセージ管理情報204とは構造が異なっており、メッセージID301ごとに、タスクID307、メッセージ種別、タイムスタンプ等のメッセージ情報を管理する。メッセージ情報が複数ある場合には、例えばキュー構造(ポインタ)でつなげられる。
【0072】
獲得情報解析手段108は、OSメッセージ管理情報204から獲得したメッセージ情報をメッセージ状態管理キュー110のデータ構成に変換して格納する(図7:S703)。このとき、OSメッセージ管理情報204からは得られなかった項目であるタイムスタンプ801には「0」を格納し、待ちタスクとならない(パターンB)ため得られないタスクID802はNULLを格納する。また、メッセージ種別803は、上記送信カウント304及び受信カウント305より決定される。具体的には、送信カウント>0の場合にはメッセージ種別=1、受信カウント>0の場合にはメッセージ種別=2等である。
【0073】
以上のようにして、初期状態生成手段106が初期状態(メッセージ情報表示装置101の起動時の状態)のメッセージ状態管理キュー110を生成する。
【0074】
上記初期状態のメッセージ状態管理キュー110が生成された後、タスク間メッセージ通信が発生すると、タスク間メッセージ通信検知手段111がOS103のデバッガ通知部206からタスク間メッセージ通信が発生したことを受信する。このとき、OS103がログ104に書き込んだメッセージ情報ログ105のアドレスであるメッセージ情報アドレスをパラメータとして受け取る(図7:S704)。
【0075】
タスク間メッセージ通信検知手段111は、タスク間メッセージが発生したことを受信した後、メッセージ情報獲得手段112は、上記メッセージ情報アドレスを利用して、メッセージ情報ログ105内に含まれるメッセージID、メッセージ種別(機能コード)、発行タスクID、タイムスタンプ等のメッセージ情報を取得する(図7:S705→S706)。続いて、当該メッセージ情報を受信したメッセージ状態管理キュー操作手段113は、以下の処理を行う(図7:S707)。尚、メッセージ状態管理キュー操作手段113の処理概要のフローチャートを図9に示す。メッセージ状態管理キュー操作手段113は、上記メッセージ情報獲得手段112から上記メッセージ情報を受け取ると、当該メッセージ情報のメッセージID(ここではメッセージID=1とする)に対応するメッセージ状態管理キュー110を参照する(図9:S901→S902)。当該参照により、メッセージ状態管理キュー110の先頭にペアとなるメッセージ情報が格納されているかを調べるのである(図9:S903)。尚、ペアとなるメッセージ情報とは、メッセージ種別が送信のメッセージ情報についてはメッセージ種別が受信のメッセージ情報であり、メッセージ種別が受信のメッセージ情報については、メッセージ種別が送信のメッセージ情報のことである。
【0076】
ここで、ペアとなるメッセージ情報が格納されていない場合、当該メッセージ状態管理キューの末尾に獲得したメッセージ情報を追加し、次のメッセージを獲得するまで待機する(図7:S708、図9:S903NO→S906)。
【0077】
ここで、メッセージ状態管理キュー110の先頭にペアとなるメッセージ情報が格納されている場合、メッセージ状態管理キュー110から先頭のメッセージ情報を抜き出し、ペアとなったメッセージ情報をメッセージシーケンス作成手段114に送信する(図7:S709→S710、図9:S903YES→S904→S905)。
【0078】
以下に、図10、図11を用いて、上記処理時のメッセージ状態管理キュー110の状態を具体的に説明する。図10において、上記外部端末102の起動直後に、Task1がメッセージID=1の「タスク間メッセージ通信の送信」を発行した場合を想定する(図25:パターンAに該当)。この場合、メッセージID=1のメッセージ状態管理キューの初期状態はNULLとなっている(図10A)。
【0079】
この後、メッセージ状態管理キュー操作手段113が、タイムスタンプ602=0x0001、発行タスクID601=1、メッセージ種別(機能コード605より判定可能)=送信、メッセージID603=1のメッセージ情報をメッセージ情報ログ105より獲得すると、ID=1に対応するメッセージ状態管理キューにはペアとなるメッセージ情報が無いため、当該メッセージ状態管理キューの末尾にメッセージ情報を格納する(図10B)。
【0080】
次に、メッセージ状態管理キュー操作手段113が、タイムスタンプ602=0x0002、発行タスクID601=2、メッセージ種別=受信、メッセージID603=1のメッセージ情報を獲得すると、ID=1のメッセージ状態管理キュー110にはペアとなるメッセージ情報があるため、当該ペアとなるメッセージ情報が抜き出される。
【0081】
次に、メッセージ状態管理キュー操作手段113は、メッセージ情報ログ105より獲得した受信のメッセージ情報とメッセージ状態管理キュー110から抜き出された送信のメッセージ情報とをペアとして、メッセージシーケンス作成手段114に送信する。
【0082】
同様に、図11において、上記外部端末102の起動直後に、Task2がメッセージID=2の「タスク間メッセージ通信の受信」を発行した場合を想定する(図25:パターンBに該当)。
【0083】
メッセージID=2のメッセージ状態管理キューの初期状態はNULLとなっている(図11A)。この後、メッセージ状態管理キュー操作手段113が、タイムスタンプ602=0x0001、発行タスクID601=2、メッセージ種別=受信、メッセージID603=2のメッセージ情報を獲得すると、メッセージID=2のメッセージ状態管理キュー110にはペアとなるメッセージ情報が無いため、メッセージ状態管理キュー110の末尾に当該メッセージ情報を格納する(図11B)。
【0084】
この後、メッセージ状態管理キュー操作手段113が、タイムスタンプ602=0x0002、発行タスクID601=1、メッセージ種別=送信、メッセージID603=1のメッセージ情報を獲得すると、メッセージID=2のメッセージ状態管理キューにはペアとなるメッセージ情報があるため、当該ペアとなるメッセージ情報を抜き出す。
【0085】
次に、メッセージ状態管理キュー操作手段113は、メッセージ情報ログ105より獲得した送信のメッセージ情報と、メッセージ状態管理キュー110から抜き出した受信のメッセージ情報とをペアとして、メッセージシーケンス作成手段114に送信する。
【0086】
メッセージシーケンス作成手段114は、上記パターンA、Bどちらに該当する場合でも、ペアとなったメッセージ情報に基づいてメッセージシーケンスを表示すべき座標に変換する。例えば、X座標はタスクIDから算出し、Y座標(時間軸)はタイムスタンプから算出するとよい。
【0087】
表示手段115は、メッセージ種別が送信の座標からメッセージ種別が受信の座標に矢印で表示する等、ソフトウェア開発者が視覚的に理解できるように画面上に表示する(図7:S711)。
【0088】
このとき、初期状態生成手段106が生成したメッセージ情報は全てY座標の0の位置に変換されている。また、初期状態生成手段106が生成したメッセージ情報で、メッセージ種別が送信の場合はタスクID307がNULLになっているので、送信の情報を表示しないで、メッセージ受信の情報のみを表示する。
【0089】
以上のように、メッセージ情報表示装置の起動時に、初期状態生成手段がOSメッセージ管理情報を取得する構成により、アプリケーションソフトウェアのタスク間メッセージ通信が起きた後に当該メッセージ情報表示装置を起動しても正しくメッセージシーケンスを表示可能となる。
【0090】
また、例えば上記初期状態をログより作成した場合には、外部端末を長時間起動した後等では初期状態を生成するのに時間がかかるが、本メッセージ情報表示装置では、初期状態の作成にログを使用しないので起動が高速である。
【0091】
さらに、上記ログを格納するための領域は無制限ではないため、ログより初期状態を作成する事ができない場合が起こりえるが、本メッセージ情報表示装置では、ログの領域をほとんど必要としないため、確実にメッセージシーケンスを表示可能となる。
【0092】
次に、上記メッセージ情報表示装置101を、従来技術にて説明した図28のケースに当てはめた場合を具体的に示す。
【0093】
メッセージ情報表示装置101起動時(起動ポイント2801)の、OSメッセージ管理情報204の状態を図12に示す。
【0094】
メッセージID=1のメッセージ管理情報ブロック1201にはメッセージが入っておらず、待ちタスクリスト1202とバッファ1203にNULL、送信カウント1204と受信カウント1205は0となっている。
【0095】
メッセージID=2のメッセージ管理ブロック1211は、「メッセージの受信発行2803」に基づいて、待ちタスクリスト1212の参照先(タスクID1216)にタスクID=2が格納されており、バッファ1213にメッセージを受信するアドレスが格納され、受信カウント1215=1となっている。
【0096】
メッセージID=3のメッセージ管理情報ブロック1221は、「メッセージの受信発行2806」に基づいて、待ちタスクリスト1222の参照先(タスクID1226)にタスクID=3が格納されており、バッファ1223にメッセージを受信するアドレスが格納され、受信カウント1225=1となっている。
【0097】
メッセージID=4のメッセージ管理情報ブロック1231は、「メッセージの送信発行2807」に基づいて、待ちタスクリスト1232にNULL、バッファ1232に送信されたデータが入っており、送信カウント1234=1となっている。
【0098】
このような状態で、上述したように、メッセージ情報表示装置101は起動時に初期状態生成手段106の管理情報獲得手段107により、上記図12に示した待ちタスクリスト、送信カウント、受信カウントを取得する。次に獲得情報解析手段108は、取得したメッセージ情報をメッセージ状態管理キュー110の構造に変換して格納する。ここで、当該初期状態生成手段106によって生成されたメッセージ状態管理キュー110の状態を図13に示す。
【0099】
メッセージID=1においては、送信カウント1204、受信カウント1205とも0であり、メッセージが無いために、メッセージ状態管理キュー1301はNULLとなる。
【0100】
メッセージID=2においては、受信カウント1215=1であるため、メッセージ管理キュー1311にメッセージ情報が1つ生成される。ここで、待ちタスクリスト1212によりタスクID1216=2が判断できる。また、受信カウント1215=1であるため、メッセージ種別は受信となる。尚、タイムスタンプには0が格納される。
【0101】
メッセージID=3においては、同様に、受信カウント1225=1であるため、メッセージ管理キュー1321にメッセージ情報が1つ生成される。ここで、待ちタスクリスト1222によりタスクID1226=3が判断できる。また、受信カウント1225=1であるため、メッセージ種別は受信となる。尚、タイムスタンプは0が格納される。
【0102】
メッセージID=4においては、送信カウント1234=1であるため、メッセージ管理キュー1331にメッセージ情報が1つ生成される。ここで、待ちタスクリスト1232にはタスクIDがないため、タスクIDはNULL、送信カウント1234=1であるため、メッセージ種別は送信となる。尚、タイムスタンプには0が格納される。
【0103】
以上に示した初期状態生成手段106の処理により、メッセージ状態管理キューの初期状態が生成される。以後、メッセージ情報ログ105を随時受信することで、正しくメッセージシーケンスを表示した例を図14に示す。
【0104】
ここで、初期状態生成手段106によって生成されたメッセージ情報は、タイムスタンプが0のためメッセージID=2、メッセージID=3のメッセージ受信の情報1401、1402はY軸の0の位置に表示される。また、メッセージID=4のメッセージ受信発行1403には、初期状態生成手段でタスクIDがわからなかったため、矢印で結ばれないデータが存在する。しかし、それ以降のタスク間メッセージ通信の発生に対しては正しくメッセージシーケンスを表示することができる。よって、アプリケーションソフトウェアのタスク間メッセージ通信が起きた後にメッセージ情報表示装置を起動しても正しくメッセージシーケンスを表示することができる。
【0105】
(実施の形態2)
以下、本発明のメッセージ情報表示装置における実施の形態2について図面を参照しながら詳細に説明していく。
【0106】
実施の形態2におけるメッセージ情報表示装置1501の構成を図15に示す。上記実施の形態1の構成と異なっているのは初期状態生成手段1506に、ログ探索手段1500を備えている点である。当該ログ探索手段1500が、初期状態生成手段106で獲得できなかったタイムスタンプやメッセージ送信時のタスクIDをメッセージ情報ログ105から取得することで、実施の形態1より詳細なメッセージシーケンスを作成することができる。
【0107】
まず、メッセージ情報表示装置1501を起動すると、上記実施の形態1と同様に初期状態生成手段1506は管理情報獲得手段107によりOSメッセージ管理情報204を取得し、獲得情報解析手段108が、メッセージ状態管理キュー110を作成する。
【0108】
この際、ログ探索手段1500により、タイムスタンプや送信タスクIDをログ20より取得する。ログ探索手段1500の処理内容を表したフローチャートを図16に示す。
【0109】
上記ログ探索手段1500は、例えば獲得情報解析手段108より、タイムスタンプ=NULLや、タスクID=NULLであるメッセージ情報を取得した旨の情報を取得した場合、以下の処理を行う。
【0110】
即ち、メッセージIDを1からメッセージIDの最大値まで1ずつ増加させて、以下の処理を繰り返す(図16:S1601)。上記メッセージIDに対応するメッセージ状態管理キュー110内に、メッセージ情報があるか調べる(図16:S1602)。ここで、メッセージ情報がある場合、当該メッセージ状態管理キュー110内のメッセージ種別とメッセージの個数を取得する(図16:S1602Yes→S1603)。
【0111】
次に、ログ探索手段1500は、ログ104を調べ、次にメッセージ情報ログを書き込むポイントであるログ書き込みポイントを最初のログ検索ポイントに設定する(図16:S1604)。ログ検索ポイントより古いログデータの方向へ、同一メッセージIDおよび、処理S1603で取得したのと同一メッセージ種別を持つメッセージ情報ログを探索する(図16:S1606)。
【0112】
ここで、対象となるメッセージ情報ログが見つかった場合、当該メッセージ情報ログから発行タスクID601とタイムスタンプ602を取得する(図16:S1607Yes→S1608)。続いて、当該メッセージ状態管理キューに格納されている後方のメッセージ情報からタイムスタンプとメッセージ送信のタスクIDを書き込む(図16:S1609)。処理S1606以降の処理をメッセージの個数回繰り返し、すべてのメッセージ情報にタイムスタンプとメッセージ送信のタスクIDを書き込む(図16:S1605)。以上の処理を、メッセージID=1からメッセージIDの最大値まで1ずつ増加させて繰り返す。
【0113】
以上の処理により、ログ探索手段1500は、抜けのないメッセージ状態管理キュー110の初期状態を生成することができる。
【0114】
次に初期状態生成手段106がOSメッセージ状態管理情報204及びメッセージ情報ログ105からメッセージ情報表示装置起動時のメッセージ情報を取得し、メッセージ状態管理キューを生成するまでの具体例を示す。
【0115】
図4に示すタスク間メッセージ通信が行われる際に、図5で示す位置でメッセージ情報表示装置を途中起動させた場合を例に挙げる。
【0116】
メッセージ情報表示装置を起動すると、実施の形態1と同様に管理情報獲得手段107と、獲得情報解析手段108により、図19に示すメッセージ状態管理キュー110が作成される。このとき得られなかった情報であるタイムスタンプと送信時のタスクIDをログ探索手段1500によって求める。メッセージ情報表示装置起動時のログの状態を図23に示す。
【0117】
以下に、上記ログ探索手段1500の処理を、実施の形態1における図13に適用したケースを具体的に説明する。尚、メッセージ情報ログ105を更に具体的に図17に示す。また、各メッセージ情報ログのフォーマットは、図6に示したのと同一である。
【0118】
まず、上記ログ探索手段1500は、メッセージID=1のメッセージ状態管理キュー1301内に、メッセージ情報があるか調べる。尚、当該メッセージ状態管理キュー1301にはメッセージ情報がないため何もしない。
【0119】
次に、メッセージID=2のメッセージ状態管理キュー1311を調べ、メッセージ種別=2(受信)であること、及びメッセージの個数が1であることを取得する。
【0120】
続いて、上記ログ探索手段1500は、図17に示すログ書き込みポイント1702をログ探索ポイントとし、ログ探索ポイントより古いログデータの方向へメッセージID=2で、メッセージ種別=2(受信)を持つメッセージ情報ログを探索する。すなわち、マーカー606=0x55(ログパケットの先頭の意)、ログ種別607=0x09(システムコール発行の意)、機能コード605=0x02(メッセージ受信発行の意)、メッセージID603=0x00000002(メッセージID=2の意)であるものを探索する。尚、各数値は予め定義されているものである。
【0121】
すると、アドレス0x8f24(1703)より、タイムスタンプ602=0x00000021の情報を取得できる。続いて、ログ探索手段1500は、当該タイムスタンプをメッセージID=2のメッセージ状態管理キュー110の対応する箇所に格納する。
【0122】
同様に、メッセージID=3のメッセージ状態管理キュー1321を調べ、メッセージ種別=2(受信)、メッセージの個数=1であることを取得する。これに基づいて、上記同様、ログ探索手段1500は、アドレス0x8e20(1704)より、タイムスタンプ602=0x00000004の情報を取得できる。続いて、ログ探索手段1500は、当該タイムスタンプをメッセージID=3のメッセージ状態管理キュー1321に格納する。
【0123】
最後に、上記ログ探索手段1500は、メッセージID=4のメッセージ状態管理キュー1331を調べ、メッセージ種別=1(送信)、メッセージの個数が1であることを取得する。続いて、ログ探索ポイントより古いログデータの方向へメッセージID=4、メッセージ種別=1(送信)であるメッセージ情報ログを探索する。すなわち、マーカー606=0x55、ログ種別607=0x09(システムコール発行)、機能コード605=0x01(メッセージ送信発行)、メッセージID603=0x00000004であるものを探索する。これにより、アドレス0x8e20(1701)より、発行タスクID601=3、タイムスタンプ602=0x00000003を取得することができる。続いて、上記ログ探索手段1500は、当該情報(発行タスクID、タイムスタンプ)をメッセージID=4のメッセージ状態管理キュー1331に格納する。
【0124】
以上の操作によって、生成されるメッセージ状態管理キュー110を図18に示す。つまり、実施の形態1で取得できなかった送信時のタスクIDとタイムスタンプ(1801)が格納されている事がわかる。以上の例によってメッセージ情報表示装置起動時に、メッセージ状態管理キューの初期状態を生成することで、正しくメッセージシーケンスメッセージ情報表示装置を表示した例を図19に示す。
【0125】
実施の形態1に対応する図14と異なり、起動ポイント以前の情報についてもタイムスタンプと送信タスクIDが取得できる。このため、本実施の形態2に記載のメッセージ情報表示装置では、メッセージ情報表示装置起動時点をまたがってペアとなるメッセージがある場合に、起動前のメッセージの発行順序やメッセージを発行したタスクを特定し、メッセージシーケンスを表示できるようになる。
【0126】
(実施の形態3)
以下、本発明のメッセージ情報表示装置における実施の形態3について図面を参照しながら詳細に説明していく。
【0127】
上記実施の形態1、2では、OSメッセージ管理情報204にて待ちタスクIDについてのみ管理していた。つまり、図25におけるパターンBにおいてのみ、タスクID307に待ちタスクのIDが格納されていたのである。本実施の形態3では、待ちにならないタスクIDについても管理する構成とする。
【0128】
まず、実施の形態3におけるOSメッセージ管理情報の構成を図20に示す。OSメッセージ管理情報2001は、タスクID307に待ちタスクのIDを格納するのではなく、メッセージを発行したタスクのIDである発行タスクIDを格納する。つまり、例えばTask3によりシステムコールが発行されると、OS103を構成するシステムコール処理部202は、上記Task3より受信したTask2へのメッセージ及びその他必要な情報をOS管理情報変更部203に送信する。続いて、上記OS管理情報変更部203は、受信した上記メッセージ等に対応するOSメッセージ管理情報ブロック207の、バッファアドレス303を参照し、受信したメッセージを当該アドレスに対応するバッファ領域に格納するのは上記実施の形態1にて述べたとおりである。
【0129】
ここで、上記OS管理情報変更部は、図20に示すアドレス302が示すメモリ領域に、メッセージを発行したタスクのID、つまり発行タスクIDを格納する。ここでは、上記Task3のIDが該当する。
この状態で、初期状態生成手段106がOSメッセージ状態管理情報2001からメッセージ情報表示装置起動時のメッセージ情報を取得し、メッセージ状態管理キューを生成した場合のメッセージ状態管理キュー110は図21に示すようになる。
【0130】
つまり、実施の形態1と異なり、例えばメッセージID4のタスクID2101には、メッセージを送信したTask3のタスクID:3が格納されている。
【0131】
以上のようにOSのメッセージ管理情報に発行タスクリストを加えた場合のメッセージ状態管理キューの出力例を図22に示す。
【0132】
上記実施の形態1では、メッセージID=4のメッセージ受信発行1403には、初期状態生成手段でタスクIDがわからなかったため、矢印で結ばれないデータが存在した(図14:受信発行1403)。しかし本実施の形態3では、上記実施の形態1にて取得できなかった送信時のタスクIDを取得することができるため、図22における受信発行2201に示すように、メッセージ状態管理キュー操作手段113は送信元のタスクを特定でき、即ちペアを作成する事が出来る。
【0133】
ただし、実施の形態2と異なり、初期状態生成手段106で生成したメッセージ情報は全てタイムスタンプが0のため、初期状態のメッセージは全てY軸の0の位置に表示されることとなる。しかし、ログのサイズは有限であるため、ログのサイズが小さい場合は、実施の形態2ではメッセージ情報が探索失敗に終わり、メッセージ情報が獲得できない場合もありえる。このような場合は、本構成をとれば、確実に送信時のタスクIDを取得できるので有用である。
【0134】
以上のように、タスク間メッセージ通信において、OSが今まで管理をしていなかった送信元のタスクIDを管理する事で、ログのサイズに関係なくメッセージ情報表示装置起動ポイントをまたがってペアとなるメッセージがある場合に、起動前のメッセージを発行したタスクを特定し、メッセージシーケンスを表示できるようになる。尚、OSによる上記送信元のタスクIDの管理は、タスク間メッセージ通信のメッセージシーケンス図を作成しない場合には無用と言えるが、メッセージシーケンス図を作成する場合においては非常に有効である。
【0135】
以上の3つの構成を用いれば、メッセージ情報表示装置起動時に初期状態生成手段が、初期状態のメッセージ状態管理キューを作成することにより、その後のタスク間メッセージ通信が発生した際に、正しいメッセージシーケンスが表示できるようになる。よって、マルチタスクアプリケーションの実行途中でメッセージ情報表示装置を起動しても、正しいメッセージシーケンスを表示することができる。
【0136】
以上、本発明を具体的に説明したが、本発明は上記実施の形態に限定されるものではなく、その要旨を逸脱しない範囲で変更可能であることはもちろんである。
【0137】
つまり、本発明のメッセージ表示装置をOSのタスク間メッセージ通信の際を利用する例について説明したが、セマフォや、イベントフラグなどOSの持つ他の同期通信手段についても同様に、初期状態生成手段を設ければ、途中起動しても正しいメッセージシーケンスを表示することができる。この場合は、メッセージ状態管理キューの代わりに、セマフォやイベントフラグのデータ状態を管理(記憶)する状態管理記憶手段を持たせ、初期状態生成手段に、OSのセマフォやOSのイベントフラグのデータを取得する獲得手段と、獲得した情報をセマフォやイベントフラグデータを上記状態管理記憶手段のデータ構造に変換する獲得情報解析手段を備えることで実現できる。
【0138】
【発明の効果】
本発明によれば、メッセージ情報表示装置の起動時に、初期状態生成手段がOSメッセージ管理情報を取得する構成であるため、アプリケーションソフトウェアのタスク間メッセージ通信が起きた後に当該メッセージ情報表示装置を起動しても正しくメッセージシーケンスを表示可能となる。
【0139】
また、例えば上記初期状態をログより作成した場合には、外部端末を長時間起動した後等では初期状態を生成するのに時間がかかるが、本メッセージ情報表示装置では、初期状態の作成にログを使用しないので起動が高速である。
【0140】
さらに、上記ログを格納するための領域は無制限ではないため、ログより初期状態を作成する事ができない場合が起こりえるが、本メッセージ情報表示装置では、ログの領域をほとんど必要としないため、確実にメッセージシーケンスを表示可能となる。
【0141】
また、ログ探索手段を設けることにより、起動ポイント以前の情報についてもタイムスタンプと送信タスクIDを取得できる。このため、メッセージ情報表示装置起動時点をまたがってペアとなるメッセージがある場合に、起動前のメッセージの発行順序やメッセージを発行したタスクを特定し、メッセージシーケンスを表示できるようになる。
【0142】
また更に、タスク間メッセージ通信において、OSが今まで管理をしていなかった送信元のタスクIDを管理する事で、メッセージ情報表示装置起動ポイントをまたがってペアとなるメッセージがある場合に、ログのサイズに関係なく起動前のメッセージを発行したタスクを特定し、メッセージシーケンスを表示できる。
【図面の簡単な説明】
【図1】本発明に係るメッセージ情報表示装置の概略構成を示す図である。
【図2】タスク間メッセージ通信を使ったアプリケーション構成の概念を示す図である。
【図3】OSメッセージ管理情報の構造を示す図である。
【図4】OSメッセージ管理ブロックの変化を示す図(パターンA)である。
【図5】OSメッセージ管理ブロックの変化を示す図(パターンB)である。
【図6】メッセージ情報ログの構造の例を示す図である。
【図7】各手段間の相互処理を示す概略シーケンス図である。
【図8】メッセージ状態管理キュー及びメッセージ状態管理情報の構成を示した図である。
【図9】メッセージ状態管理キュー操作手段の処理手順を示すフローチャートである。
【図10】メッセージが発生した場合のメッセージ状態管理キューの変化を示す図(パターンA)である。
【図11】メッセージが発生した場合のメッセージ状態管理キューの変化を示す図(パターンB)である。
【図12】メッセージ情報表示装置起動時のOSメッセージ管理情報の具体例を示す図である。
【図13】実施の形態1の初期状態生成手段によって生成されたメッセージ状態管理キューの具体例を示す図である。
【図14】実施の形態1におけるメッセージ情報表示装置が出力する画面例である。
【図15】実施の形態2におけるメッセージ情報表示装置の概略構成を示す図である。
【図16】メッセージ情報ログ探索手段の処理内容を示すフローチャートである。
【図17】ログ内部データの具体例である。
【図18】実施の形態2における初期状態生成手段によって生成されたメッセージ状態管理キューの具体例を示す図である。
【図19】実施の形態2におけるメッセージ情報表示装置が出力する画面例である。
【図20】実施の形態3におけるOSメッセージ管理情報の構造を示す図である。
【図21】実施の形態3の初期状態生成手段によって生成されたメッセージ状態管理キューの具体例を示す図である。
【図22】実施の形態3におけるメッセージ情報表示装置が出力する画面例である。
【図23】メッセージ情報表示装置の概観図である。
【図24】従来のメッセージ情報表示装置の構成を示す図である。
【図25】基本的なメッセージ送受信パターン時のメッセージ情報表示装置の出力例である。
【図26】タスク間メッセージ通信におけるOSとタスク間の関係を示すイメージ図である。
【図27】従来のメッセージ情報表示装置の出力例。
【図28】従来のメッセージ情報表示装置を途中起動した場合の出力例。
【符号の説明】
101 メッセージ情報表示装置
102 外部端末
103 OS
104 ログ
105 メッセージ情報ログ
106 初期状態生成手段
107 管理情報獲得手段
108 獲得情報解析手段
109 メッセージ状態管理情報
110 メッセージ状態管理キュー
111 タスク間メッセージ通信検知手段
112 メッセージ情報獲得手段
113 メッセージ状態管理キュー操作手段
114 メッセージシーケンス作成手段
115 表示手段

Claims (10)

  1. マルチタスクOS上で動作するタスク間で発生するメッセージの、送信と受信の関係を表示するメッセージ情報表示装置において、
    起動時に、上記OSの管理下にあるメッセージに関する情報を上記OSより取得する管理情報獲得手段と、
    上記管理情報獲得手段が取得した上記メッセージに関する情報を所定のキューに格納する獲得情報解析手段と、
    上記キューに格納されている上記メッセージに関する情報と上記OSが出力する上記メッセージに関するログとに基づいて上記メッセージの送信と受信の関係を関連付けるキュー操作手段と、
    を具備する事を特徴とするメッセージ情報表示装置。
  2. 上記OSの管理下にあるメッセージに関する情報は、上記タスク間での送受信が完了していないメッセージに関する情報である請求項1に記載のメッセージ情報表示装置。
  3. さらに、上記OSの管理下にあるメッセージに関する情報から取得できない情報を、上記メッセージに関するログから取得するログ探索手段を具備する請求項1又は2に記載のメッセージ情報表示装置。
  4. 上記ログ探索手段が上記ログより取得する情報は、メッセージが送信または受信された時刻を示すタイムスタンプ、又はメッセージ送信を行ったタスクのIDのいずれかを含む請求項3に記載のメッセージ情報表示装置。
  5. 上記キュー操作手段は、
    上記メッセージに関する情報に含まれる、メッセージの送信元であるタスクIDを用いて上記メッセージの送信と受信の関係を関連付ける請求項1に記載のメッセージ情報表示装置。
  6. マルチタスクOS上で動作するタスク間で発生するメッセージの、送信と受信の関係を表示するメッセージ情報表示方法において、
    起動時に、上記OSの管理下にあるメッセージに関する情報を上記OSより取得する管理情報獲得ステップと、
    上記管理情報獲得ステップにて取得した上記メッセージに関する情報を所定のキューに格納する獲得情報解析ステップと、
    上記キューに格納されている上記メッセージに関する情報と上記OSが出力する上記メッセージに関するログとに基づいて上記メッセージの送信と受信の関係を関連付けるキュー操作ステップと、
    を具備する事を特徴とするメッセージ情報表示方法。
  7. マルチタスクOS上で動作するタスク間で発生するメッセージの、送信と受信の関係を表示するコンピュータに、
    起動時に、上記OSの管理下にあるメッセージに関する情報を上記OSより取得する管理情報獲得ステップと、
    上記管理情報獲得ステップにて取得した上記メッセージに関する情報を所定のキューに格納する獲得情報解析ステップと、
    上記キューに格納されている上記メッセージに関する情報と上記OSが出力する上記メッセージに関するログとに基づいて上記メッセージの送信と受信の関係を関連付けるキュー操作ステップと、
    を実行させるプログラム。
  8. タスク間で発生するメッセージに関する情報に当該メッセージの送信元のタスクを特定するIDを含めて一旦格納する格納手段と、
    タスク間で発生するメッセージの送信と受信の関係を表示するメッセージ情報表示装置に上記メッセージに関する情報を送信する送信手段と、
    を具備するマルチタスク管理装置。
  9. コンピュータを、
    タスク間で発生するメッセージに関する情報に当該メッセージの送信元のタスクを特定するIDを含めて一旦格納する格納手段、
    メッセージの送信と受信の関係を表示するメッセージ情報表示装置に上記メッセージに関する情報を送信する送信手段、
    として機能させるためのマルチタスクOS。
  10. マルチタスク管理装置上で動作するタスク間で発生するメッセージの、送信と受信の関係を表示するメッセージ情報表示装置を備えたメッセージ情報表示システムにおいて、
    マルチタスク管理装置は、
    上記メッセージに関する情報に当該メッセージの送信元のタスクを特定するIDを含めて一旦格納する格納手段と、
    上記メッセージに関する情報を上記メッセージ情報表示装置に送信する送信手段とを具備し、
    メッセージ情報表示装置は、
    起動時に、上記マルチタスク管理装置の管理下にあるメッセージに関する情報を上記マルチタスク管理装置より受信する管理情報獲得手段と、
    上記管理情報獲得手段が取得した上記メッセージに関する情報を所定のキューに格納する獲得情報解析手段と、
    上記キューに格納されている上記メッセージに関する情報と上記マルチタスク管理装置が出力する上記メッセージに関するログとに基づいて上記メッセージの送信と受信の関係を関連付けるキュー操作手段とを具備する事を特徴とするメッセージ情報表示システム。
JP2002207917A 2002-07-17 2002-07-17 メッセージ情報表示装置、表示方法、及びそのシステム Pending JP2004054378A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2002207917A JP2004054378A (ja) 2002-07-17 2002-07-17 メッセージ情報表示装置、表示方法、及びそのシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2002207917A JP2004054378A (ja) 2002-07-17 2002-07-17 メッセージ情報表示装置、表示方法、及びそのシステム

Publications (1)

Publication Number Publication Date
JP2004054378A true JP2004054378A (ja) 2004-02-19

Family

ID=31932201

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2002207917A Pending JP2004054378A (ja) 2002-07-17 2002-07-17 メッセージ情報表示装置、表示方法、及びそのシステム

Country Status (1)

Country Link
JP (1) JP2004054378A (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544392A (ja) * 2005-06-22 2008-12-04 エヌエイチエヌ コーポレーション メッセージ状態点検方法及びシステム
JP2008310632A (ja) * 2007-06-15 2008-12-25 Asyst Technologies Japan Inc プロセス状態監視装置
CN103927247A (zh) * 2013-01-10 2014-07-16 三星电子株式会社 根据服务使用状态显示图标的方法和支持该方法移动终端
CN112559476A (zh) * 2020-12-16 2021-03-26 中国平安人寿保险股份有限公司 一种用于提高目标系统性能的日志存储方法及其相关设备

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008544392A (ja) * 2005-06-22 2008-12-04 エヌエイチエヌ コーポレーション メッセージ状態点検方法及びシステム
JP4718605B2 (ja) * 2005-06-22 2011-07-06 エヌエイチエヌ コーポレーション メッセージ管理方法及びシステム
JP2008310632A (ja) * 2007-06-15 2008-12-25 Asyst Technologies Japan Inc プロセス状態監視装置
CN103927247A (zh) * 2013-01-10 2014-07-16 三星电子株式会社 根据服务使用状态显示图标的方法和支持该方法移动终端
CN112559476A (zh) * 2020-12-16 2021-03-26 中国平安人寿保险股份有限公司 一种用于提高目标系统性能的日志存储方法及其相关设备
CN112559476B (zh) * 2020-12-16 2023-07-21 中国平安人寿保险股份有限公司 一种用于提高目标系统性能的日志存储方法及其相关设备

Similar Documents

Publication Publication Date Title
US10318409B2 (en) Application development environment for portable electronic devices
JP4420968B2 (ja) コマンディングのために方法及びコンピュータ可読媒体
US9519495B2 (en) Timed API rules for runtime verification
CN106030546B (zh) 计算机程序的方法
JPH07105044A (ja) コンピュータプログラムの実行をシュミレーションする方法及びシステム
WO2021072880A1 (zh) 虚拟机内部快照异步创建方法、装置、系统及存储介质
US20010027387A1 (en) Debugging supporting apparatus, debugging supporting method and recording medium readable by computer with its programs recorded thereon
JP2004054378A (ja) メッセージ情報表示装置、表示方法、及びそのシステム
JP2001005652A (ja) プログラム間バインド方法
JP2009098907A (ja) デバッグ装置及びデバッグ方法
CN110991147A (zh) 一种字体检测方法、装置、电子设备及存储介质
EP4027246B1 (en) Method and apparatus for debugging applet, electronic device and storage medium
RU2316043C2 (ru) Механизм и способ предоставления информации событий в системе доступа
CN116977152A (zh) 绘图处理方法、装置及设备
JP4719243B2 (ja) データ同期方法および通信装置
JP2007304778A (ja) プログラムのテスト方法、プログラム、テスト装置、及びアプリケーション開発システム
CN115904651A (zh) 大数据平台的任务处理方法、系统及大数据平台
JP2006018477A (ja) シーケンス情報生成装置およびシーケンス情報生成方法およびプログラムおよび記録媒体
JPH11149383A (ja) プロセス間通信制御装置
WO2023191938A1 (en) System and method of providing conditional copying of data
JP2002244883A (ja) デバッグ支援装置、デバッグ支援方法及びそのプログラムを記録したコンピュータ読み取り可能な記録媒体
JPH09185528A (ja) ソフトウェア検査方法およびその装置
JP2005092609A (ja) シーケンス図表示装置およびシーケンス図表示プログラム
JP2009075724A (ja) 管理装置、管理システム、管理プログラム、および、管理方法
CN118093446A (zh) 一种异构程序调试方法、系统、装置、电子设备及存储介质