JP4833792B2 - データ解析システム - Google Patents

データ解析システム Download PDF

Info

Publication number
JP4833792B2
JP4833792B2 JP2006287681A JP2006287681A JP4833792B2 JP 4833792 B2 JP4833792 B2 JP 4833792B2 JP 2006287681 A JP2006287681 A JP 2006287681A JP 2006287681 A JP2006287681 A JP 2006287681A JP 4833792 B2 JP4833792 B2 JP 4833792B2
Authority
JP
Japan
Prior art keywords
function
stack
instruction
call
information
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
JP2006287681A
Other languages
English (en)
Other versions
JP2008107908A (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.)
Renesas Electronics Corp
Original Assignee
Renesas Electronics 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 Renesas Electronics Corp filed Critical Renesas Electronics Corp
Priority to JP2006287681A priority Critical patent/JP4833792B2/ja
Publication of JP2008107908A publication Critical patent/JP2008107908A/ja
Application granted granted Critical
Publication of JP4833792B2 publication Critical patent/JP4833792B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Description

本発明は、データ解析システムに関するものであり、特に、ソフトウェア開発において不具合解析時に用いると有用なデータ解析システムに関する。
ソフトウェアの規模は大規模化が進む一方であり、その開発環境の効率向上が望まれている。ソフトウェア開発において最大の障害となるのが不具合発生時の解析に多大なコストを浪費することである。不具合が発生した場合にこれを解析するために、一般的に、不具合解析専用の機能をハードウェア上に追加することが行われている。しかしながら、この不具合解析専用の機能は、コスト削減の観点からすると、搭載しないことが望ましい。特別な追加コストなしに使用可能な不具合解析手段が待望されている。
図9及び図10に、特許文献1に記載された従来のデータ解析システムの全体構成及びテーブル構成を示す。図9において、カーネルスタック11は、呼び出し元関数のフレームポインタをベースアドレスとし、呼び出す関数の戻り番地と、自関数のベースアドレスをポイントするフレームポインタとを有する関数の情報が順次格納される。ポインタ手段13は、最後に実行された関数のフレームポインタをポイントする。追跡手段15は、最後に実行された関数のフレームポインタから、順次呼び出し元関数のフレームポインタに遡り、各情報格納領域から戻り番地を取り出す。ネームリスト17は、システムで使用される静的に結合された関数の関数名および先頭アドレスが、先頭アドレスの昇順に格納される。関数名特定手段19は、戻り番地が入力され、昇順に並べられた先頭アドレスを探索範囲とし、二分探索法により、戻り番地が含まれる先頭アドレス範囲を求め、その関数名を特定する。
図10において、システムベクタテーブル(SVT)31、33は、システムが使用する各種テーブルをポイントする。カーネルスタック11には、関数ごとにローカルにしようされるデータ及びレジスタ内容が格納される。また、別の関数を呼び出したときには、戻り番地と、実行中の関数情報のベースアドレスをポイントするフレームポインタが格納される。このフレームポインタが格納された位置は、次の関数のベースアドレスとして使用される。ネームリスト17は、システム内で静的に結合された関数名と、その先頭アドレスとを対応づけるリストであり、関数名が先頭アドレスの昇順に格納される。
特開平4−96148号公報
特許文献1に開示された従来技術では、追跡手段を実現するために本来不要なフレームポインタ及び戻り番地の記録が必須となる。そのため、フレームポインタ及び戻り番地の記録によってソフトウェア効率が悪化するという問題点や、専用のフレームポインタ及び戻り番地記録領域の設定によってスタックフレームが増大するという問題点があった。さらには、コンパイラ・ソフトウェアに特別な修正が必要となるという問題点もあった。コンパイラ・ソフトウェアに特別な修正が必要となる問題点については、コンパイラ・ソフトウェアに機械語を記述することにより特別な修正を不必要とすることもできるが、その記述者にとって大きな負担となるため開発コストの大幅な増加を招いてしまう。
本発明にかかるデータ解析システムは、上記のような課題を解決するためになされたものであり、関数毎に命令領域を有し、関数呼び出し命令の位置と、関数呼び出し命令後の戻り位置が連続して配置された命令領域と、関数呼び出しに応じて各関数に対応したスタック領域が積み上げられて格納され、当該スタック領域中に呼び出し命令後の戻り位置情報が格納されたソフトウェアスタックと、前記ソフトウェアスタックにおけるスタック領域のデータが前記命令領域における位置情報であるとした場合に、その位置情報により特定される位置の直前の位置にある命令が関数呼び出し命令であるかを判定することによって関数呼び出し命令を認識し、これにより、呼び出し情報および呼び出し順序情報を取得する追跡手段を備えている。
本発明により、ソフトウェア開発において不具合解析時に用いると有用なデータ解析システムを提供することができる。
本発明の実施の形態1.
最初に、図1を用いて、本発明の実施の形態1にかかるデータ解析システムの構成について説明する。当該データ解析システムは、関数毎に任意のサイズのスタックフレーム(スタック領域)を使用し、関数呼び出しが発生する度にスタックフレームを積み上げるデータ/アドレス混合スタックベースのシステムである。このシステムは、スタック位置格納手段101、スタック検索位置格納手段102、戻り番地格納手段103、呼び出し関係確認手段104、呼び出し関係整列手段105、関数情報抽出手段106、ソフトウェアスタック107及び命令領域108を備えている。
スタック位置格納手段101は、ソフトウェアスタック107において直近に呼び出した関数のスタック位置の情報を一時的に格納する手段である。具体的には、スタック位置格納手段101に、フレームの先頭位置に関する情報が格納される。したがって、関数が呼び出されると、このスタック位置格納手段101に格納される情報が変更される。
スタック検索位置格納手段102は、追跡処理のために、スタック位置格納手段101に格納されたスタックの位置情報を複写(コピー)し、これを格納する手段である。
戻り番地格納手段103は、直近に呼び出した関数の呼び出し元の関数の戻り番地を一時的に格納する手段である。したがって、関数の呼び出し毎に、この一時的領域に格納される情報が変更される。
呼び出し関係確認手段104は、ソフトウェアスタック107のデータにより特定される、命令領域108上の番地の直前の番地にある命令が、関数呼び出し情報であるかを判定する手段である。
呼び出し関係整列手段105は、呼び出し順序に関する情報を取得する手段である。
関数情報抽出手段106は、呼び出された関数に関する情報を取得する手段である。
ソフトウェアスタック107は、関数呼び出しに応じて各関数に対応したスタック領域が積み上げられて格納され、当該スタック領域中に呼び出し命令後の戻り位置情報が格納されるものである。このソフトウェアスタック107には、関数毎に独立して設けられたスタック領域と未使用領域から構成されている領域を有する。スタック位置格納手段101に格納されたスタック位置に対応する関数以外の関数のスタック領域には、関数の呼び出し元の戻り番地の領域が格納されている場合がある。
命令領域108には、関数毎に命令領域を有し、関数呼び出し命令の位置と、関数呼び出し命令後の戻り位置が連続して配置されている。具体的には、命令領域108には、各関数の命令、すなわちプログラム言語が格納されている。特に、関数呼び出し命令を含む関数の命令については、当該関数呼び出し命令及び戻り番地位置の情報が含まれている。
図2に本発明の実施の形態1にかかるデータ解析システムのハードウェア構成例を示す。図に示されるように、当該データ解析システム20は、CPU211、ROM212、RAM213より構成される制御部21、入力装置22、出力装置23、入出力制御回路24、記憶部25を備えており、これらの構成要素は相互にシステムバスにより接続されている。
制御部21は、データ解析システムを実現するための種々の演算処理を実行する。CPU211は、中央演算装置であり、ROM212に格納されたメインプログラムや、RAM213等に展開されたプログラム、一時的に格納されたデータ等に基づき転送や演算処理を実行する。RAM213は、一時的にデータを格納する記憶部として機能する。
入力装置22は、例えばキーボードやマウス等のデータ入力デバイスである。この入力装置22により記憶部25へデータを入力できる。出力装置23は、LCD、CRTやプロジェクタ等の表示装置やプリンタ(印刷装置)である。入出力制御回路24は、外部装置との間でデータの入出力を実行するための制御を行う。
記憶部25は、プログラムやデータを格納する記憶手段であり、メモリやハードディスク等によって構成される。記憶部25は、スタック位置格納手段101、スタック検索位置格納手段102、戻り番地格納手段103、呼び出し関係確認手段104、呼び出し関係整列手段105、関数情報抽出手段106、ソフトウェアスタック107及び命令領域108を構成する。
次に、図3を用いて、本発明の実施の形態1にかかるデータ解析システムにおける処理について説明する。図は、関数C、関数Bの順で関数を呼び出したときのソフトウェアスタック107の状態を示している。
図に示されるように、関数Cを呼び出すと、関数Cのスタック位置の情報(ここでは、関数Cスタックフレームの先頭番地)がスタック位置格納手段101に格納され、かつ関数Cのスタックフレームがソフトウェアスタック107に格納される。このときのソフトウェアスタック107の状態は図3の左側に示されるとおりである。ソフトウェアスタック107において何の情報も格納されていない領域が未使用領域である。
続いて、関数Bを呼び出すと、関数Bのスタック位置の情報(ここでは、関数Bスタックフレームの先頭番地)がスタック位置格納手段101に格納され、かつ関数Bのスタックフレームがソフトウェアスタック107に格納される。このとき、関数Bのスタックフレームは、先に格納されていた関数Cのスタックフレームに対して積み上げられる。この関数Bの呼び出しによって、スタック位置格納手段101に格納されていた関数Cのスタック位置の情報は、関数Bのスタック位置の情報に上書きされる。このときのソフトウェアスタック107の状態が図3の右側に示されている。
次に、図4を用いて、関数C、関数B、関数Aの順で呼び出したときのソフトウェアスタック107の状態の変化について説明する。
図4(a)に示されるように、関数Cを呼び出すと、関数Cのスタックフレームがソフトウェアスタック107に格納される。戻り番地格納手段103の状態は、未使用である。
続いて、関数Bを呼び出すと、関数Cの戻り番地が戻り番地格納手段103に、関数Bのスタックフレームがソフトウェアスタック107にそれぞれ格納される。このときの戻り番地格納手段402及びソフトウェアスタック107の状態は、図4(b)に示されるとおりである。
続いて、関数Aを呼び出すと、関数Bの戻り番地が戻り番地格納手段103に、関数Aのスタックフレームがソフトウェアスタック107にそれぞれ格納される。この関数Aの呼び出し前に、戻り番地格納手段103に格納されていた関数Cの戻り番地の情報は、関数Bのスタック領域に格納される。本例では、戻り番地格納手段103に格納されていた関数Cの戻り番地の情報は、関数Bのスタック領域に格納されているが、ソフトウェアスタック107上であれば、任意の領域に格納してもよい。また、この関数Aの呼び出しによって、戻り番地格納手段103に格納されていた関数Cの戻り番地の情報は、関数Bの戻り番地の情報に上書きされている。このときの戻り番地格納手段103及びソフトウェアスタック107の状態は、図4(c)に示されるとおりである。
次に、図5を用いて、関数呼び出しの処理について説明する。図5は、関数呼び出しの処理のフローチャートである。この例では、関数Bの処理において関数Aを呼び出す処理について説明する。
図に示されるように、戻り番地格納手段103から関数Cの戻り番地を取り出し(S501)、関数Cの戻り番地を関数Bのスタックフレームに格納する(S502)。関数Bの戻り番地を戻り番地格納手段103に格納し(S503)、関数Aの先頭番地に処理を戻す(S504)。関数Aのスタック位置の位置情報(ここでは、スタックフレームの先頭番地)をスタック位置格納手段101に格納し(S505)、関数Aの処理を実行する(S506)。関数Bのスタック位置の位置情報(ここでは、スタックフレームの先頭番地)をスタック位置格納手段101に格納し(S507)、関数Bの戻り番地に処理を戻す(S508)。
続いて、図6を用いて、命令領域における関数呼び出し及び関数復帰の処理について説明する。この例では、関数Bにおいて関数Aを呼び出す処理について説明する。図に示されるように、命令領域108は、他の関数の命令領域、関数A命令領域及び関数B命令領域で構成されている。
関数Bが実行され、その中で関数Aの呼び出し命令が実行される。この関数Aの呼び出し命令によって関数Aが実行される。この関数Aの実行が終了すると、関数B復帰となり、関数Bの実行が再開される。このとき、関数Aの呼び出し命令直後の次の命令から実行が再開される。
最初に、図7を用いて、本発明のデータ解析システムにおける追跡処理に関する処理について説明する。図は、関数D、関数C、関数B、関数Aの順で呼び出したときの戻り番地格納手段103、ソフトウェアスタック107及び命令領域108の状態を示している。
図に示されるように、関数Dを呼び出すと、関数Dのスタックフレームがソフトウェアスタック107に、関数D命令領域が命令領域108にそれぞれ格納される。
続いて、関数Cを呼び出すと、関数Dの戻り番地が戻り番地格納手段103に、関数Cのスタック領域がソフトウェアスタック107に、関数C命令領域が命令領域108にそれぞれ格納される。
続いて、関数Bを呼び出すと、関数Cの戻り番地が戻り番地格納手段103に、関数Bのスタック領域がソフトウェアスタック107に、関数B命令領域が命令領域108にそれぞれ格納される。
続いて、関数Aを呼び出すと、関数Bの戻り番地が戻り番地格納手段103に、関数Aのスタック領域がソフトウェアスタック107に、関数A命令領域が命令領域108にそれぞれ格納される。
続いて、図8を用いて、本発明にかかるデータ解析システムにおける追跡処理について説明する。
最初に、スタック位置格納手段101から、スタック先頭番地を読み出し、スタック検索位置格納手段102に格納することによって、当該スタック先頭番地をスタック位置格納手段101からスタック検索位置格納手段102に複写(コピー)する。次に、スタック検索位置格納手段102に格納されたスタック先頭番地により示される、ソフトウェアスタック107上のデータを戻り番地と解釈する(S802)。このとき、スタック先頭番地により特定されるソフトウェアスタック107上のデータは、戻り番地である場合もあるが、そうでない場合もある。これを続いて実行される処理によっていずれかを判断する。
次に、ステップS802において戻り番地として解釈されたデータにより特定される番地の直前の番地上の命令を読み出す(S803)。そして、読み出された命令が関数呼び出しであるかを判定する(S804)。戻り番地である場合には、直前の命令が関数呼び出しであるから、直前の命令が関数呼び出しでないと判定された場合には、このデータは戻り番地ではないと判断することができる(S805)。この場合には、スタック検索位置格納手段に格納されたデータを更新する。具体的には、ソフトウェアスタック107上で現在格納されている番地の直後の番地に更新する。
ステップS804において、読み出された命令が関数呼び出しであると判定された場合には、戻り番地と解釈したデータが、戻り番地であったと確認し、呼び出し関係整列手段へ呼び出し先関数を登録する(S807)。
スタック検索位置格納手段に格納された番地が、スタック終端番地であるかを判定することによってスタック終端まで処理が終了したかどうかを判定する(S808)。スタック終端まで処理が終了していないと判定された場合には、再度ステップS803を実行する。スタック終端まで処理を終了したと判定した場合には、すべての処理を終了する。
このようにして、ソフトウェアスタック107上に格納されたデータが所定関数の戻り番地であるかを、戻り番地であれば命令領域において戻り関数である場合には直前の命令が呼び出し命令であることを利用して判断する。これにより、呼び出し情報および呼び出し順序情報を得ることができる。得られた各情報は、所定の記憶領域に格納される。
たとえば、図8に示したソフトウェアスタック107の状態であれば、
(1)接続情報1:関数A(現在実行中)←関数B
(2)接続情報2:関数B←関数C
(3)接続情報3:関数C←関数D
よりなる呼び出し情報と、接続情報3→接続情報2→接続情報1の順を特定する呼び出し順序情報を得ることができる。このようにして、たとえば、特許文献1における追跡手段を実現することが可能となる。
本発明の実施の形態にかかるデータ解析システムにおいては、ソフトウェアスタック107が関数の実行順に同一メモリ空間に連続して配置されており、一方向に向かって検索することにより、時間情報を間接的に取得できる。また、新たに関数呼び出しを行う場合、必ず戻り番地は、ソフトウェアスタック107に記録されるため、漏れのない時間情報を取得できる。さらに、ソフトウェアスタックに記録された戻り番地は、関数毎に一つしかないので、戻り番地を呼び出し順に矛盾なく並べることが可能となる。
このように本発明の実施の形態にかかるデータ解析システムによれば、スタックフレーム、関数呼び出し関係等のデバッグ情報を出力する特別なソフトウェアがなくとも、関数のトレースバックを行うことができる。
また、現状のデバッグ環境をそのまま使用し、アドオンの形で提供できる。メモリ上の情報のみを必要とするため、メモリダンプ等の記録のみで関数トレースバックを再現することが可能である。
本発明の実施の形態にかかるデータ解析システムの構成図である。 本発明の実施の形態にかかるデータ解析システムの機能ブロック図である。 本発明の実施の形態にかかる処理を示す構成図である。 本発明の実施の形態にかかる処理を示す構成図である。 本発明にかかる関数呼び出しの処理を示すフローチャートである。 本発明の実施の形態にかかるデータ解析システムにおける命令領域を説明するための図である。 本発明の実施の形態にかかるデータ解析システムにおける追跡処理の動作例を示す概念図である。 本発明の実施の形態にかかるデータ解析システムにおける追跡処理を示すフローチャートである。 従来の追跡処理を実現するシステムを示すブロック図である。 従来の追跡処理を実現するシステムにおける情報テーブルの構成を示すブロック図である。
符号の説明
101 スタック位置格納手段
102 スタック検索位置格納手段
103 戻り番地格納手段
104 呼び出し関係確認手段
105 呼び出し関係整列手段
106 関数情報抽出手段
107 ソフトウェアスタック
108 命令領域

Claims (5)

  1. 関数毎に命令領域を有し、関数呼び出し命令の位置と、関数呼び出し命令後の戻り位置が連続して配置された命令領域と、
    関数呼び出しに応じて各関数に対応したスタック領域が積み上げられて格納され、当該スタック領域中に呼び出し命令後の戻り位置情報が格納されたソフトウェアスタックと、
    前記ソフトウェアスタックにおけるスタック領域のデータが前記命令領域における位置情報であるとした場合に、その位置情報により特定される位置の直前の位置にある命令が関数呼び出し命令であるかを判定することによって関数呼び出し命令を認識し、これにより、呼び出し情報および呼び出し順序情報を取得する追跡手段を備えたデータ解析システム。
  2. さらに、最新のスタック領域の位置情報を格納するスタック位置格納手段を有し、
    前記追跡手段は、スタック位置格納手段により特定されるスタック位置より追跡処理を開始することを特徴とする請求項1記載のデータ解析システム。
  3. さらに、処理中の関数の戻り位置を格納する戻り位置格納手段を備えていることを特徴とする請求項1記載のデータ解析システム。
  4. 前記追跡手段は、
    前記スタック位置格納手段からスタック位置をスタック検索位置格納手段へコピーする手段と、
    前記スタック検索位置格納手段へコピーされたスタック位置により定められる前記ソフトウェア上のデータを前記命令領域における位置情報であるとして、その直前の命令を前記命令領域より取り出す手段と、
    取り出した命令が関数呼び出しかいなかを判定する手段と、
    判定の結果、取り出した命令が関数呼び出しである場合に、関数呼び出し命令を認識する手段と、
    認識された関数呼び出し命令より呼び出し情報および呼び出し順序情報を取得する手段とを有することを特徴とする請求項2記載のデータ解析システム。
  5. 判定の結果、取り出した命令が関数呼び出しでない場合に、前記スタック検索位置格納手段のスタック位置を次の位置に更新する手段をさらに備えたことを特徴とする請求項4記載のデータ解析システム。
JP2006287681A 2006-10-23 2006-10-23 データ解析システム Expired - Fee Related JP4833792B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2006287681A JP4833792B2 (ja) 2006-10-23 2006-10-23 データ解析システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2006287681A JP4833792B2 (ja) 2006-10-23 2006-10-23 データ解析システム

Publications (2)

Publication Number Publication Date
JP2008107908A JP2008107908A (ja) 2008-05-08
JP4833792B2 true JP4833792B2 (ja) 2011-12-07

Family

ID=39441237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2006287681A Expired - Fee Related JP4833792B2 (ja) 2006-10-23 2006-10-23 データ解析システム

Country Status (1)

Country Link
JP (1) JP4833792B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5550578B2 (ja) * 2011-02-06 2014-07-16 三菱電機株式会社 エントリ書換装置及びエントリ書換プログラム

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0496148A (ja) * 1990-08-08 1992-03-27 Fujitsu Ltd ダウンルート追跡方式
JPH05216717A (ja) * 1992-01-31 1993-08-27 Nec Corp デバッガのトレース機能
JP2002351695A (ja) * 2001-05-25 2002-12-06 Matsushita Electric Ind Co Ltd プログラムのデバッグ方法、デバッグ装置およびプログラムデバッグ用の記録媒体

Also Published As

Publication number Publication date
JP2008107908A (ja) 2008-05-08

Similar Documents

Publication Publication Date Title
US8635627B2 (en) Method, medium and apparatus storing and restoring register context for fast context switching between tasks
JP4718901B2 (ja) 命令実行装置、デバッグ方法、デバッグ装置及びデバッグプログラム
KR930703642A (ko) 순서를 벗어난 작업 처리방법 및 장치
JPH09330236A (ja) マイクロプロセッサ及びその周辺装置
JP4833792B2 (ja) データ解析システム
TW480445B (en) Method for downloading application programs on the compiler system platform of an electronic communication device
JP2009129133A (ja) ソフトウェア部分テストシステム、ソフトウェア部分テスト方法およびソフトウェア部分テスト用プログラム
JP2006277262A (ja) 情報処理装置及び情報管理プログラム
JP6639238B2 (ja) プログラムおよびコンピュータ
JP2000112754A (ja) データ処理装置
JP2005275703A (ja) プロセッサ及びコンテキスト切り替え方法
JP2012018641A (ja) ソフトウェア開発システム
JP2007219893A (ja) ファームウェア評価システムおよびファームウェア評価方法
JP3079825B2 (ja) 電子計算機装置
JPS63174145A (ja) デ−タ処理装置
JPH05108404A (ja) デバツガシステム
JPH027156A (ja) 文書処理装置における文書バックアップ装置
JPS6220032A (ja) 情報処理装置
JP2005228047A (ja) 言語処理装置及び言語処理プログラム
JP2002182931A (ja) 共通osシステムコール方法
CN117453548A (zh) 代码模块信息确定方法、装置、计算机设备和存储介质
JPH06282461A (ja) トレース装置
JP2006139440A (ja) エミュレータ装置およびその制御方法
JP2008310719A (ja) ブロック転送命令実行装置およびブロック転送方法
JPS63273133A (ja) デ−タ処理装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20090910

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

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

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

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees