JP5509609B2 - スタックトレース採取システム、方法およびプログラム - Google Patents
スタックトレース採取システム、方法およびプログラム Download PDFInfo
- Publication number
- JP5509609B2 JP5509609B2 JP2009027271A JP2009027271A JP5509609B2 JP 5509609 B2 JP5509609 B2 JP 5509609B2 JP 2009027271 A JP2009027271 A JP 2009027271A JP 2009027271 A JP2009027271 A JP 2009027271A JP 5509609 B2 JP5509609 B2 JP 5509609B2
- Authority
- JP
- Japan
- Prior art keywords
- stack trace
- thread
- information
- trace
- stack
- 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.)
- Active
Links
Images
Landscapes
- Debugging And Monitoring (AREA)
Description
プログラムにより提供されるプロセスが実行単位であるスレッド毎に実行される実行部と、
トレースデータ格納部と、を有し、
前記実行部は、
実行中のスレッドが別のスレッドに切り替わる際に、該実行中のスレッドの切り替え直前における処理状態を示す第1のスタックトレース情報とスレッドの切り替え後に実行された前記別のスレッドの切り替え直後の処理状態を示す第2のスタックトレース情報をそれぞれ採取し、該採取した第1及び第2のスタックトレース情報を前記トレースデータ格納部に格納するスタックトレース採取部と、
前記トレースデータ格納部に格納された第1および第2のスタックトレース情報を外部記憶装置に出力するトレースデータ出力部と、を有することを特徴とする。
プログラムにより提供されるプロセスを実行単位であるスレッド毎に実行し、
前記実行中のスレッドが別のスレッドに切り替わる際に、前記実行中のスレッドの切り替え直前における処理状態を示す第1のスタックトレース情報とスレッドの切り替え後に実行された前記別のスレッドの切り替え直後の処理状態を示す第2のスタックトレース情報をそれぞれ採取し、
採取した前記第1及び第2のスタックトレース情報をトレースデータ格納部に格納し、
前記トレースデータ格納部に格納された第1および第2のスタックトレース情報を外部記憶装置に出力することを特徴とする。
プログラムにより提供されるプロセスを実行単位であるスレッド毎に実行する処理と、
前記実行中のスレッドが別のスレッドに切り替わる際に、前記実行中のスレッドの切り替え直前における処理状態を示す第1のスタックトレース情報とスレッドの切り替え後に実行された前記別のスレッドの切り替え直後の処理状態を示す第2のスタックトレース情報をそれぞれ採取する処理と、
採取した前記第1及び第2のスタックトレース情報をトレースデータ格納部に格納する処理と、
前記トレースデータ格納部に格納された第1および第2のスタックトレース情報を外部記憶装置に出力する処理と、をコンピュータに実行させることを特徴とする。
図1は、本発明の第1の実施形態であるスタックトレース採取システムの構成を示すブロック図である。図1を参照すると、スタックトレース採取システム1は、プログラムを実行するCPU(Central Processing Unit)1と、CPU1上で動作するオペレーティングシステム(OS)3と、メモリ8を有する。
図8は、本発明の第2の実施形態であるスタックトレース採取システムの構成を示すブロック図である。
図9は、本発明の他の実施形態であるスタックトレース採取システムの構成を示すブロック図である。
2 プロセス
3 オペレーティングシステム
4 スレッド
5 スタックトレース情報
6 スタックトレース監視部
7、31 スタックトレース採取部
8 メモリ
8a トレースデータ格納領域
9、32 トレースデータ出力部
10 スタックトレース出力コマンド
20 ディスク
21 入力装置
30 実行部
33 トレースデータ格納部
Claims (9)
- プログラムにより提供されるプロセスが実行単位であるスレッド毎に実行される実行部と、
トレースデータ格納部と、を有し、
前記実行部は、
実行中のスレッドが別のスレッドに切り替わる際に、該実行中のスレッドの切り替え直前における処理状態を示す第1のスタックトレース情報とスレッドの切り替え後に実行された前記別のスレッドの切り替え直後の処理状態を示す第2のスタックトレース情報をそれぞれ採取し、該採取した第1及び第2のスタックトレース情報を前記トレースデータ格納部に格納するスタックトレース採取部と、
前記トレースデータ格納部に格納された第1および第2のスタックトレース情報を外部記憶装置に出力するトレースデータ出力部と、を有する、スタックトレース採取システムであって、
前記スタックトレース採取部は、採取した前記第1および第2のスタックトレース情報それぞれに、採取対象であるプロセスおよびスレッドの識別情報と切り替えの直前および直後を識別するための直前/直後識別情報を付与して時系列に前記トレースデータ格納部に格納し、
前記トレースデータ出力部は、
前記トレースデータ格納部に格納された前記第1および第2のスタックトレース情報を、前記時系列に基づいて古いものから順に前記外部記憶装置に出力するとともに、前記外部記憶装置に出力した際に、前記プロセスおよびスレッドの識別情報および直前/直後識別情報を検索キーとして、過去に前記外部記憶装置へ出力したスタックトレース情報のうちから今回出力したスタックトレース情報と対応する、前記プロセスおよびスレッドの識別番号が同じスタックトレース情報を抽出し、該抽出した対応するスタックトレース情報の内容と前記今回出力したスタックトレース情報とを比較し、比較結果が不一致となった場合に、該比較したスタックトレース情報の内容を、前記プロセスおよびスレッドの識別情報および直前/直後識別情報を示す情報と一緒に、前記外部記憶装置の所定の領域へ格納する、スタックトレース採取システム。 - 前記スタックトレース採取部は、採取した前記第1または第2のスタックトレース情報を格納するための空き領域が前記トレースデータ格納部に無い場合は、前記トレースデータ出力部に対して、スタックトレース情報の出力要求を行い、
前記トレースデータ出力部は、前記スタックトレース採取部からの出力要求に従い、前記トレースデータ格納部に格納された第1および第2のスタックトレース情報を前記外部記憶装置に出力する、請求項1に記載のスタックトレース採取システム。 - 当該スタックトレース採取システムの状態を監視し、特定の状態を検出すると、前記トレースデータ出力部に対して、スタックトレース情報の出力要求を行うスタックトレース監視部をさらに有し、
前記トレースデータ出力部は、前記スタックトレース監視部からの出力要求に従い、前記トレースデータ格納部に格納された第1および第2のスタックトレース情報を前記外部記憶装置に出力する、請求項1または2に記載のスタックトレース採取システム。 - 前記スタックトレース監視部は、前記特定の状態として、外部入力装置からの所定のコマンド信号を受信する、請求項3に記載のスタックトレース採取システム。
- 前記実行部は、オペレーティングシステムを実行し、該オペレーティングシステムの機能として、前記スタックトレース採取部、トレースデータ出力部およびスタックトレース監視部が構成されている、請求項3または4に記載のスタックトレース採取システム。
- 前記実行部は、第1および第2のCPUを有し、
前記第1のCPUは、オペレーティングシステムを実行し、該オペレーティングシステムの機能として、前記スタックトレース採取部およびスタックトレース監視部が構成され、
前記トレースデータ出力部は、前記第2のCPUにより構成されている、請求項3または4に記載のスタックトレース採取システム。 - 前記プロセスは、前記オペレーティングシステムを構成する管理プログラムにより提供されるプロセスを含む、請求項5または6に記載のスタックトレース採取システム。
- プログラムにより提供されるプロセスを実行単位であるスレッド毎に実行し、
前記実行中のスレッドが別のスレッドに切り替わる際に、前記実行中のスレッドの切り替え直前における処理状態を示す第1のスタックトレース情報とスレッドの切り替え後に実行された前記別のスレッドの切り替え直後の処理状態を示す第2のスタックトレース情報をそれぞれ採取し、
採取した前記第1及び第2のスタックトレース情報それぞれに、採取対象であるプロセスおよびスレッドの識別情報と切り替えの直前および直後を識別するための直前/直後識別情報を付与して時系列にトレースデータ格納部に格納し、
前記トレースデータ格納部に格納された第1および第2のスタックトレース情報を、前記時系列に基づいて古いものから順に外部記憶装置に出力するとともに、前記外部記憶装置に出力した際に、前記プロセスおよびスレッドの識別情報および直前/直後識別情報を検索キーとして、過去に前記外部記憶装置へ出力したスタックトレース情報のうちから今回出力したスタックトレース情報と対応する、前記プロセスおよびスレッドの識別番号が同じスタックトレース情報を抽出し、該抽出した対応するスタックトレース情報の内容と前記今回出力したスタックトレース情報とを比較し、比較結果が不一致となった場合に、該比較したスタックトレース情報の内容を、前記プロセスおよびスレッドの識別情報および直前/直後識別情報を示す情報と一緒に、前記外部記憶装置の所定の領域へ格納する、スタックトレース採取方法。 - プログラムにより提供されるプロセスを実行単位であるスレッド毎に実行する処理と、
前記実行中のスレッドが別のスレッドに切り替わる際に、前記実行中のスレッドの切り替え直前における処理状態を示す第1のスタックトレース情報とスレッドの切り替え後に実行された前記別のスレッドの切り替え直後の処理状態を示す第2のスタックトレース情報をそれぞれ採取する処理と、
採取した前記第1及び第2のスタックトレース情報それぞれに、採取対象であるプロセスおよびスレッドの識別情報と切り替えの直前および直後を識別するための直前/直後識別情報を付与して時系列にトレースデータ格納部に格納する処理と、
前記トレースデータ格納部に格納された第1および第2のスタックトレース情報を、前記時系列に基づいて古いものから順に外部記憶装置に出力するとともに、前記外部記憶装置に出力した際に、前記プロセスおよびスレッドの識別情報および直前/直後識別情報を検索キーとして、過去に前記外部記憶装置へ出力したスタックトレース情報のうちから今回出力したスタックトレース情報と対応する、前記プロセスおよびスレッドの識別番号が同じスタックトレース情報を抽出し、該抽出した対応するスタックトレース情報の内容と前記今回出力したスタックトレース情報とを比較し、比較結果が不一致となった場合に、該比較したスタックトレース情報の内容を、前記プロセスおよびスレッドの識別情報および直前/直後識別情報を示す情報と一緒に、前記外部記憶装置の所定の領域へ格納する処理と、をコンピュータに実行させるためのプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009027271A JP5509609B2 (ja) | 2009-02-09 | 2009-02-09 | スタックトレース採取システム、方法およびプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009027271A JP5509609B2 (ja) | 2009-02-09 | 2009-02-09 | スタックトレース採取システム、方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2010182237A JP2010182237A (ja) | 2010-08-19 |
JP5509609B2 true JP5509609B2 (ja) | 2014-06-04 |
Family
ID=42763782
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009027271A Active JP5509609B2 (ja) | 2009-02-09 | 2009-02-09 | スタックトレース採取システム、方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5509609B2 (ja) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11327797B2 (en) | 2016-05-09 | 2022-05-10 | Oracle International Corporation | Memory usage determination techniques |
CN110888753A (zh) * | 2019-11-08 | 2020-03-17 | 烽火通信科技股份有限公司 | 软件故障定位方法及系统 |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0375940A (ja) * | 1989-08-18 | 1991-03-29 | Matsushita Electric Ind Co Ltd | マルチタスクコントローラ |
JPH03278135A (ja) * | 1990-03-20 | 1991-12-09 | Mitsubishi Electric Corp | スタックトレース装置 |
JP3207564B2 (ja) * | 1992-11-13 | 2001-09-10 | 株式会社東芝 | イベント記録方法及び装置 |
JP2846238B2 (ja) * | 1994-04-28 | 1999-01-13 | 三菱電機株式会社 | エラートレースによるシステム制御管理方法 |
JPH09185531A (ja) * | 1995-12-28 | 1997-07-15 | Hitachi Ltd | トレース情報の欠落回避装置 |
JPH113250A (ja) * | 1997-06-13 | 1999-01-06 | Nec Corp | スレッド情報採取方法及びスレッド情報採取プログラム を記録した記録媒体 |
JP2008204011A (ja) * | 2007-02-16 | 2008-09-04 | Seiko Epson Corp | マルチスレッドシステム、スレッド動作異常検知方法 |
-
2009
- 2009-02-09 JP JP2009027271A patent/JP5509609B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
JP2010182237A (ja) | 2010-08-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US5948112A (en) | Method and apparatus for recovering from software faults | |
US8418149B2 (en) | Differential comparison system and method | |
US20080127112A1 (en) | Software tracing | |
US20080276129A1 (en) | Software tracing | |
JP2010086364A (ja) | 情報処理装置、動作状態監視装置および方法 | |
US10740166B2 (en) | Thread based dynamic data collection | |
JP2013206147A (ja) | ロギング装置、ロギング方法及びプログラム | |
JP5623557B2 (ja) | 診断データを収集するためのマルチスレッド化コンピューティング環境における方法、装置、およびコンピュータ・プログラム | |
US8489938B2 (en) | Diagnostic data capture in a computing environment | |
JP5509609B2 (ja) | スタックトレース採取システム、方法およびプログラム | |
JP6880961B2 (ja) | 情報処理装置、およびログ記録方法 | |
US7421618B2 (en) | Method for processing a diagnosis of a processor, information processing system and a diagnostic processing program | |
US20150242312A1 (en) | Method of managing memory, computer, and recording medium | |
US20180173728A1 (en) | Information processing apparatus and method | |
JP2009223714A (ja) | 演算回路及び演算回路の異常解析方法 | |
WO2009147738A1 (ja) | 情報処理装置及びその制御方法並びにモニタプログラム | |
WO2012137239A1 (ja) | 計算機システム | |
JP3644399B2 (ja) | Pciバス不良個所切り離し方法およびそのプログラム | |
JP5921306B2 (ja) | 情報処理装置および情報処理方法およびプログラム | |
US8614799B2 (en) | Memory paging | |
JP2015022667A (ja) | トレース情報収集装置およびトレース情報収集方法、並びにコンピュータ・プログラム | |
JP5832408B2 (ja) | 仮想計算機システム及びその制御方法 | |
JP7180319B2 (ja) | 情報処理装置、及び情報処理装置のダンプ管理方法 | |
US8447949B2 (en) | Detection of zero address events in address formation | |
US20220237073A1 (en) | Information processing apparatus, non-transitory computer readable medium storing program, and method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20120112 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20130213 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130226 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20130425 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20130910 |
|
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: 20140225 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140310 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5509609 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |