JP5800777B2 - 情報処理装置及び情報処理方法及びプログラム - Google Patents
情報処理装置及び情報処理方法及びプログラム Download PDFInfo
- Publication number
- JP5800777B2 JP5800777B2 JP2012182381A JP2012182381A JP5800777B2 JP 5800777 B2 JP5800777 B2 JP 5800777B2 JP 2012182381 A JP2012182381 A JP 2012182381A JP 2012182381 A JP2012182381 A JP 2012182381A JP 5800777 B2 JP5800777 B2 JP 5800777B2
- Authority
- JP
- Japan
- Prior art keywords
- function
- system call
- address
- unit
- trace
- 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
Links
Images
Description
プログラムトレースでは、プログラム実行時に特定関数が呼び出されたこと、特定の値が変更されたこと、特定の処理経路を通過したことなどをトレースログとして残し、ソフトウェアの動作を外部より把握するための仕組みである。
また、オペレーティングシステム(OS)と、OS上で動作するアプリケーションプログラム(以下、「アプリケーション」又は「アプリ」ともいう)で構成される情報処理装置の場合、OSは複数のアプリケーションを並行に動作させるため、現在どのアプリケーションが動作しているかは把握できるものの、アプリケーション内部の動作状況、すなわち関数の呼び出し状況や、関数内データのやり取り状況を把握することができなかった。
このため、トレースについては、OSの動作状況を知りたい場合は、OS用トレースを、アプリケーションの動作状況を知りたい場合には、アプリケーション用トレースを、と別々のトレースを用いる必要があったため、情報処置装置全体での動作把握に時間を要していた。
特許文献1では、トレースしたい箇所に、予め、メモリをアクセスする命令を埋め込んでおく必要があった。
特許文献2では、コンパイル時に関数呼び出し命令を検索してトレース情報を取得するコードを埋めておく必要があった。
また、従来の手法では、トレース情報はOSとアプリケーション双方で取得する必要があった。
特許文献2および特許文献3は、取得可能なのはアプリケーション用のトレースのみであった。
また、特許文献4では、ユーザ側トレース情報とカーネルトレース情報を一体に出力するものであるが、ユーザ側にもトレースを記録しておく領域を設ける必要があった。
OS(Operating System)と、前記OS上で動作する、関数が1つ以上含まれるアプリケーションプログラムとが実装されている情報処理装置であって、
前記アプリケーションプログラムに含まれるいずれかの関数が実行される際に、実行対象の関数のプロセス空間上のアドレスを取得する関数アドレス取得部と、
前記関数アドレス取得部により取得されたプロセス空間上のアドレスが設定された、通常のシステムコールとは異なる特殊システムコールを前記OSに発行するシステムコール発行部と、
前記特殊システムコールを含む、前記OSに関するイベントのトレースログを生成するトレースログ生成部とを有することを特徴とする。
このため、トレースする箇所をコンパイル時に決定する必要がない。
また、OSのトレースログに、アプリケーションプログラムの関数のトレースログを含ませることができ、アプリケーションプログラムの関数のトレースログとOSのトレースログを一元的に管理することができる。
図1は、本実施の形態に係る情報処理装置100の構成図である。
また、情報処理装置100には、ソフトウェアとして、アプリケーション1と、オペレーティングシステム2と、共有ライブラリ3と、トレース解析部4が実装されている。
これらソフトウェアは、通常は二次記憶装置103に格納されており、実行に際して、プログラムコードが順次メモリ102にロードされ、プロセッサ101により読みこまれ、実行される。
アプリケーション1は、アプリケーション1とはプログラムファイルとしては別になった、共有ライブラリ3を介して、OS2のサービスをシステムコールという形式で呼び出す。
アプリケーション1には、1つ以上の関数が含まれている。
また、本情報処理装置100では、トレースログを解析するためのトレース解析部4が存在する。
関数フック部5は、gcc(GNU Compiler)の−pgオプションのように、コンパイラによって、全関数の先頭で、特定の関数を呼び出すコードが埋め込まれる。
なお、本関数フック部5はトレース機能にのみ存在するのではなく、プロファイラなどの性能解析など一般的に使用されている機能である。
つまり、開始・終了部7は、アプリケーション1に含まれる関数ごとに、関数が実行される際に、実行対象の関数に対して、後述のアプリ関数アドレス・引数取得部8を動作させるか否かを判定する。
開始・終了部7は、動作判定部の例に相当する。
アプリ関数アドレス・引数取得部8は、関数アドレス取得部の例に相当する。
トレース部11は、特殊システムコールを含む、OS2に関するイベントのトレースログを生成する。
特殊システムコールは、通常のシステムコールとは異なるシステムコールであり、例えば、明示的にエラーとなるシステムコールである。
トレース部11は、特殊システムコールに対して、アプリ関数アドレス・引数取得部8により取得されたプロセス空間上のアドレスが記述されるOSトレースログ情報を生成する。
なお、トレース部11がOSイベントの発生の度に生成した個々のログをトレースログといい、一定期間分のトレースログが集約された情報をOSトレースログ情報という。
なお、トレース部11は、トレースログ生成部の例に相当する。
前述のように、特殊システムコールのトレースログでは、アプリ関数アドレス・引数取得部8により取得されたプロセス空間上のアドレスが記述されている。
トレースログ・アプリ関数/引数変換部14は、OSトレースログ情報の中から特殊システムコールのトレースログを抽出する。
また、トレースログ・アプリ関数/引数変換部14は、アプリ関数アドレス抽出部12により取得された関数の先頭アドレスと関数のコードサイズ情報から、アプリケーション1に含まれる各関数のプロセス空間上のアドレスの範囲を導出する。
そして、トレースログ・アプリ関数/引数変換部14は、抽出した特殊システムコールのトレースログに記述されているプロセス空間上のアドレスに対して、アプリケーション1に含まれる各関数のプロセス空間上のアドレスの範囲を照合して、特殊システムコールのトレースログに記述されているプロセス空間上のアドレスに対応する関数の関数名を判定する。
更に、トレースログ・アプリ関数/引数変換部14は、判定した関数名を出力する。
トレースログ・アプリ関数/引数変換部14は、関数アドレス導出部と関数判定部と出力部の例に相当する。
アプリケーション1の起動は、OS2の処理にて実施され、この時、共有ライブラリ3とアプリケーション1の動的リンクが実施される(S102)。
この動的リンクの際、共有ライブラリ3の関数フック機能処理部6は、関数フック部5が、共有ライブラリ3の開始・終了部7を呼び出すように関数フック部5のコードを書き換える。
この書き換えについては、直接呼び出すコードを埋め込む方式や、予め関数フック部5内に関数ポインタを配置し、関数ポインタに値が入っている場合、その関数ポインタが示すアドレスを呼び出すようにしておき、関数フック機能処理部6は、その関数ポインタに、開始・終了部7のアドレスを設定するようにしてもよい。
これにより、アプリケーション1内の各関数が関数フック部5を呼び出す際、一緒に共有ライブラリの開始・終了部7が呼び出される。
各関数が実行されると、各関数の先頭で関数フック部5が呼び出され、それに伴い、共有ライブラリ3の開始・終了部7が呼び出され、アプリ関数アドレス・引数取得部8およびシステムコール発行部9を介して、特殊システムコールが発行される。
本実施の形態では、特殊システムコールは、明示的にエラーとなるシステムコールとする。
この時、システムコールの引数に、アプリ関数アドレス・引数取得部8にて取得した関数フック部5を呼び出した関数のアドレス(プロセス空間上のアドレス)と関数の引数が設定される。
そしてシステムコール処理部10にて、トレース部11が呼び出されることによりトレースログである関数トレースが記録される(S104)。
トレース部11には、OS2内の他のイベント(ファイル書き込み、割込み発生、コンテキストスイッチ等)の記録とともにシステムコールトレース情報としての関数トレース情報が記録される。
そしてアプリケーション1の動作が終了(S105)した後、トレース解析部4のトレースログ収集部13によって、トレース部11が記録したOSトレースログ情報が取得される(S106)。
この時、OSトレースログ情報には、アプリケーション1の関数トレース情報はシステムコールトレース情報としてしか記録されていない。
つまり、OSトレースログ情報のシステムコールトレース情報単体では、アプリケーション1で実行された関数の関数名は明らかでない。
トレース解析部4では、まず、アプリ関数アドレス抽出部12が、アプリケーション1内の各関数のアドレス情報と、その関数のサイズを取得する。
そして、トレースログ・アプリ関数/引数変換部14が、OSトレースログ情報の時刻毎のトレース情報(トレースログ)を解析し、明示的にエラーとなっているシステムコールトレース情報については、システムコールトレース情報の引数情報から、アプリケーション1内の関数アドレスを抽出する。
更に、トレースログ・アプリ関数/引数変換部14は、システムコールトレース情報から抽出した関数のアドレスと、アプリ関数アドレス抽出部12が抽出したアプリケーション1内の関数情報と照合を行い、システムコールトレース情報にある関数アドレスが関数情報と合致した場合、その関数から呼び出されたと判断し、関数名を出力すると共に、同じくシステムコールトレース情報に記録された関数の引数情報を抽出し、引数情報を出力する。
S107にて、OSトレースログ情報を解析している際、システムコールトレース以外のトレースログや、システムコールトレースでもエラーになっていないもの、または、システムコールトレースでエラーになっているものの、システムコールトレースに付随する引数に格納された関数アドレス情報がアプリケーション1内の関数情報と合致していない場合は、トレースログ・アプリ関数/引数変換部14は、OSトレース情報であると判断し、OSトレース情報を出力する。
以上が本トレース方式における全体の動作である。
トレースすべきか否かは、共有ライブラリ3内の外部変数に、トレース実施の値を設定し、それを開始・終了部7で判断する方法や、開始・終了部7にて、システムコールを発行し、OS2のトレース部11が動作している場合は、トレースを実施すると判断する方法が考えられる。
トレース開始・終了部7にて、トレースをしないと判断した場合(S110でNO)は、共有ライブラリ3の動作を終了する。
関数のアドレス情報については、関数が関数フック部5を呼び出す際、サブルーチンコールにて呼び出しており、呼び出し元に返る際のアドレスをスタックに保存している。
さらに、関数の引数も、スタックにつまれており、関数フック部5が開始・終了部7を介して、アプリ関数アドレス・引数取得部8に至るまでの間も関数呼び出しの形式で実施されている。
このため、アプリ関数アドレス・引数取得部8実行時のスタックポインタの内容を元に、スタックを逆算していくことで、関数フック部5を呼び出した関数の呼出し後に実施されるアドレス(関数先頭アドレスから関数先頭アドレス+関数サイズ内のいずれかのアドレス)と、関数の引数の内容を取得することができる。
そして、S113にてシステムコール発行部9は、明示的にエラーとなるシステムコールを発行する。
明示的にエラーとなるシステムコールを発行することで、OS2の内部動作に影響を与えずに、トレース部11には、システムコールのトレース情報が記録される。
明示的にエラーとなるシステムコールについては、可能な限りシステムコールの入口でエラー判断され、かつ、呼び出される頻度が少なく、かつ、通常のプログラミングでは設定されないエラーを設定するのがよい。
また、システムコールの引数についても、アプリケーション内関数の引数を格納する個数を多く取ることができるため、引数の個数が多いほうがよい。
例えば、Linux(登録商標)OSにおいては、mmap_pgoff()システムコールや、splice()システムコールなどを用い、mmap_pgoff()システムコールの引数flagsに負値を入れたり(通常は正値しか持たない)、splice()システムコールの引数fd_inに負値(通常は正値しか持たない)を入れ、他の引数に関数アドレスや関数の引数を設定し、システムコールを発行することが考えられる。
以上が本トレース方式における共有ライブラリ3の動作である。
本OSトレースログ情報には、トレース開始からトレース終了までに入った、様々なOS内イベントの情報が時系列に記録されており、共有ライブラリ3のシステムコール発行部9が実施した明示的にエラーとなるシステムコールの発行も、システムコールイベントのトレースログとして記録されている。
アプリケーション1のプログラムファイルには、アプリケーション1のコードおよびデータが格納されているとともに、コード・データ内にある関数や変数の、アプリケーション1起動時の位置(アドレス)情報が入っている。
この情報については、アプリケーション1起動時に、アプリケーション1が動作するメモリには格納されないものの、HDD(Hard Disc Drive)などの二次記憶装置に入っているプログラムファイル内には保存されている。
例えば、Linux(登録商標)OSにてアプリケーションとして起動可能なELFフォーマットのプログラムファイルの場合、「.symtab」と呼ばれるシンボルテーブル領域には、関数名と、その関数のメモリ上の先頭アドレスと、その関数のサイズが記録されている。
アプリ関数アドレス抽出部12は、この情報を読み取り、関数名と、その関数の先頭アドレスおよびサイズを抽出する。
次にトレース解析部4では、トレースログ・アプリ関数/引数変換部14が、OSトレースログ情報について、記録されているOS内イベントを1つ1つ、以下のように解析していく。
もし、システムコールイベントでない、または、システムコールイベントであっても、システムコールエラーとなっていない場合(S122でNO)は、OSトレース情報と判断し、トレースログ・アプリ関数/引数変換部14は、S123にてOSトレースとしての出力を行う。
更に、トレースログ・アプリ関数/引数変換部14は、解析したイベントがOSトレースログ情報の最後のものであるか判断し(S124)、最後であれば終了し(S124でYES)、最後でなければ(S124でNO)、S122に戻る。
これは、アプリ関数アドレス抽出部12が抽出した関数の先頭アドレスと関数サイズの情報から、
(関数の先頭アドレス)≦(システムコールトレースに記録されたアドレス)
≦(関数の先頭アドレス)+(関数のサイズ)
を満たしているかで判断される。
なお、上記の式で示される「アドレス」は、すべてプロセス空間上のアドレスである。
以降は、S122でNOであった場合と同じである。
ここでは、共有ライブラリ3にて、アプリ関数アドレス・引数取得部8がスタックから抽出した引数を、システムコール発行部9が明示的にエラーとなるシステムコールの引数として埋め込んだものが抽出される。
次に、トレースログ・アプリ関数/引数変換部14は、抽出された関数情報を元に、関数名を出力するとともに、S127で抽出された関数の引数を出力する。
そして、S124にて、解析したイベントがOSトレースログ情報の最後のものであるか判断し(S124)、最後であれば終了し(S124のYes)、最後でなければ(S124のNo)、S122に戻る。
以上が、トレース解析部4の動作である。
そして、トレースを実施する場合は、関数フック部5を呼び出した関数のアドレスと、関数の引数を抽出し、それをシステムコールの引数として格納するとともに、明示的にエラーとなるシステムコールを発行する。
更に、アプリケーションの終了後のOSトレースログ情報から、システムコールイベントでかつエラーとなっているシステムコールイベントに対し、アプリケーションのプログラムファイルから抽出したアプリケーションの関数アドレス情報と、システムコールイベントに付随する関数の引数情報を抽出し、関数名と引数を出力する。
以上の手順により、アプリケーション内のトレースする箇所をコンパイル時に決定することなく、アプリケーション内の関数トレース情報を、OSトレース情報に含め、一緒に保存することができる。
(a)アプリケーションの各関数から呼び出される関数フック部と、共有ライブラリ内のトレース機能とを、アプリケーション起動時に結合する、関数フック機能処理部
(b)上記共有ライブラリ内のトレース機能に以下の手段を備える。
(ア)関数フック部を呼び出した関数のアドレスを抽出するアプリ関数アドレス取得部
(イ)アプリ関数アドレス取得部が取得した関数アドレスをシステムコールの引数として設定し、明示的にエラーとなるシステムコールを発行する、システムコール発行部
(c)以下の機能を備えたトレース解析部
(ア)アプリケーションのプログラムファイルからアプリケーション内の関数の先頭アドレスと関数のサイズを抽出するアプリ関数アドレス抽出部
(イ)OSのトレース機能によって記録されたOSトレースログ情報から、システムコールイベントにて、かつ、システムコールがエラーとなったトレース情報について、そのトレース情報にシステムコールの引数として記録されている関数アドレス情報と、アプリ関数アドレス抽出部が抽出した関数の先頭アドレスおよび関数のサイズを照合し、該当関数がみつかった場合に、アプリ関数アドレス抽出部が抽出した関数名の情報を出力する、トレースログ・アプリ関数変換部
(a)アプリケーションの各関数から呼び出される関数フック部と、共有ライブラリ内のトレース機能とを、アプリケーション起動時に結合する、関数フック機能処理部
(b)上記共有ライブラリ内のトレース機能に以下の手段を備える。
(ア)トレースを実施するか否かを判断する開始・終了部
(イ)関数フック部を呼び出した関数のアドレスと関数の引数を抽出するアプリ関数アドレス・引数取得部
(ウ)アプリ関数アドレス・引数取得部が取得した関数アドレスおよび引数をシステムコールの引数として設定し、明示的にエラーとなるシステムコールを発行する、システムコール発行部
(c)以下の機能を備えたトレース解析部
(ア)アプリケーションのプログラムファイルからアプリケーション内の関数の先頭アドレスと関数のサイズを抽出するアプリ関数アドレス抽出部
(イ)OSのトレース機能によって記録されたOSトレースログ情報から、システムコールイベントにて、かつ、システムコールがエラーとなったトレース情報について、そのトレース情報にシステムコールの引数として記録されている関数アドレス情報と、アプリ関数アドレス抽出部が抽出した関数の先頭アドレスおよび関数のサイズを照合し、該当関数がみつかった場合に、アプリ関数アドレス抽出部が抽出した関数名と、トレース情報にシステムコールの引数として記録されている関数引数の情報を出力する、トレースログ・アプリ関数/引数変換部
プロセッサ101は、プログラムである、アプリケーション1、オペレーティングシステム2、共有ライブラリ3、トレース解析部4を実行する。
メモリ102は、RAM(Random Access Memory)である。
二次記憶装置103は、例えばROM(Read Only Memory)やフラッシュメモリ、ハードディスク装置である。
入力装置104は、例えばマウス、キーボードである。
出力装置105は、例えばディスプレイ装置である。
Claims (9)
- OS(Operating System)と、前記OS上で動作する、関数が1つ以上含まれるアプリケーションプログラムとが実装されている情報処理装置であって、
前記アプリケーションプログラムに含まれるいずれかの関数が実行される際に、実行対象の関数のプロセス空間上のアドレスを取得する関数アドレス取得部と、
前記関数アドレス取得部により取得されたプロセス空間上のアドレスが設定された、通常のシステムコールとは異なる特殊システムコールを前記OSに発行するシステムコール発行部と、
前記特殊システムコールを含む、前記OSに関するイベントのトレースログを生成するトレースログ生成部とを有することを特徴とする情報処理装置。 - 前記トレースログ生成部は、
前記特殊システムコールに対して、前記関数アドレス取得部により取得されたプロセス空間上のアドレスが記述されるトレースログを生成し、
前記情報処理装置は、更に、
前記アプリケーションプログラムに含まれる各関数のプロセス空間上のアドレスの範囲を導出する関数アドレス導出部と、
前記トレースログ生成部により生成されたトレースログの中から前記特殊システムコールのトレースログを抽出し、抽出した前記特殊システムコールのトレースログに記述されているプロセス空間上のアドレスに対して、前記関数アドレス導出部により導出された各関数のプロセス空間上のアドレスの範囲を照合して、前記特殊システムコールのトレースログに記述されているプロセス空間上のアドレスに対応する関数の関数名を判定する関数判定部と、
前記関数判定部により判定された関数名を出力する出力部とを有することを特徴とする請求項1に記載の情報処理装置。 - 前記関数アドレス取得部は、
前記アプリケーションプログラムに含まれるいずれかの関数が実行される際に、実行対象の関数のプロセス空間上のアドレスを取得するとともに、実行対象の関数の引数を取得し、
前記システムコール発行部は、
前記関数アドレス取得部により取得されたプロセス空間上のアドレスと引数とが設定された特殊システムコールを前記OSに発行し、
前記トレースログ生成部は、
前記特殊システムコールに対して、前記関数アドレス取得部により取得されたプロセス空間上のアドレスと引数とが記述されるトレースログを生成し、
前記出力部は、
前記関数判定部により判定された関数名を出力するとともに、前記特殊システムコールのトレースログに記述されている引数を出力することを特徴とする請求項2に記載の情報処理装置。 - 前記出力部は、
前記トレースログ生成部により生成されたトレースログのうち前記特殊システムコールのトレースログ以外のトレースログを、前記OSで発生したイベントのトレースログとして出力することを特徴とする請求項2又は3に記載の情報処理装置。 - 前記システムコール発行部は、
前記関数アドレス取得部により取得されたプロセス空間上のアドレスが設定された、エラーとして取り扱われるシステムコールを、前記特殊システムコールとして発行することを特徴とする請求項1〜4のいずれかに記載の情報処理装置。 - 前記情報処理装置は、更に、
前記アプリケーションプログラムに含まれる関数ごとに、関数が実行される際に、実行対象の関数に対して、前記関数アドレス取得部を動作させるか否かを判定する動作判定部を有することを特徴とする請求項1〜5のいずれかに記載の情報処理装置。 - 前記関数アドレス取得部と前記システムコール発行部が、前記アプリケーションプログラムと動的にリンクされる共有ライブラリに含まれ、
前記トレースログ生成部が、前記OSに含まれていることを特徴とする請求項1〜6のいずれかに記載の情報処理装置。 - OS(Operating System)と、前記OS上で動作する、関数が1つ以上含まれるアプリケーションプログラムとが実装されているコンピュータが行う情報処理方法であって、
前記アプリケーションプログラムに含まれるいずれかの関数が実行される際に、実行対象の関数のプロセス空間上のアドレスを取得する関数アドレス取得ステップと、
前記関数アドレス取得ステップにより取得されたプロセス空間上のアドレスが設定された、通常のシステムコールとは異なる特殊システムコールを前記OSに発行するシステムコール発行ステップと、
前記特殊システムコールを含む、前記OSに関するイベントのトレースログを生成するトレースログ生成ステップとを有することを特徴とする情報処理方法。 - OS(Operating System)と、前記OS上で動作する、関数が1つ以上含まれるアプリケーションプログラムとが実装されているコンピュータに、
前記アプリケーションプログラムに含まれるいずれかの関数が実行される際に、実行対象の関数のプロセス空間上のアドレスを取得する関数アドレス取得ステップと、
前記関数アドレス取得ステップにより取得されたプロセス空間上のアドレスが設定された、通常のシステムコールとは異なる特殊システムコールを前記OSに発行するシステムコール発行ステップと、
前記特殊システムコールを含む、前記OSに関するイベントのトレースログを生成するトレースログ生成ステップとを実行させることを特徴とするプログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012182381A JP5800777B2 (ja) | 2012-08-21 | 2012-08-21 | 情報処理装置及び情報処理方法及びプログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2012182381A JP5800777B2 (ja) | 2012-08-21 | 2012-08-21 | 情報処理装置及び情報処理方法及びプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2014041419A JP2014041419A (ja) | 2014-03-06 |
JP5800777B2 true JP5800777B2 (ja) | 2015-10-28 |
Family
ID=50393647
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2012182381A Expired - Fee Related JP5800777B2 (ja) | 2012-08-21 | 2012-08-21 | 情報処理装置及び情報処理方法及びプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5800777B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9535814B2 (en) * | 2014-03-31 | 2017-01-03 | Nec Corporation | Dynamic border line tracing for tracking message flows across distributed systems |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2000172530A (ja) * | 1998-12-08 | 2000-06-23 | Nec Corp | リアルタイム処理ソフトウェアの動作状態データの収集/表示装置、及び方法 |
JP4628149B2 (ja) * | 2005-03-14 | 2011-02-09 | 株式会社エヌ・ティ・ティ・ドコモ | アクセス制御装置及びアクセス制御方法 |
WO2009102006A1 (ja) * | 2008-02-14 | 2009-08-20 | Nec Corporation | アクセス制御装置、その方法及び情報記録媒体 |
JP5717678B2 (ja) * | 2012-03-08 | 2015-05-13 | 三菱電機株式会社 | コンピュータシステムおよびコンピュータシステムを用いたネットワークシステム |
-
2012
- 2012-08-21 JP JP2012182381A patent/JP5800777B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2014041419A (ja) | 2014-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6516870B2 (ja) | プログラム命令を安全に実行する方法及び該方法用プログラム | |
US9274923B2 (en) | System and method for stack crawl testing and caching | |
US9727436B2 (en) | Adding a profiling agent to a virtual machine to permit performance and memory consumption analysis within unit tests | |
JP5386905B2 (ja) | プロファイリング方法およびプロファイリングプログラム | |
JP4681491B2 (ja) | プロファイリングプログラムおよびプロファイリング方法 | |
KR20090017598A (ko) | 소프트웨어를 분석하기 위한 방법 및 시스템 | |
KR101325954B1 (ko) | 코드분석과 화면분석을 이용한 안드로이드 어플의 자동실행 방법, 및 이를 위한 안드로이드 어플 자동실행 프로그램을 기록한 컴퓨터로 판독가능한 기록매체 | |
CN109471697B (zh) | 一种监控虚拟机中系统调用的方法、装置及存储介质 | |
EP3387536B1 (en) | Method and device for non-intrusively collecting function trace data | |
US20090228875A1 (en) | Method and System for Reducing Disk Allocation by Profiling Symbol Usage | |
JP5303795B2 (ja) | アプリケーションの解析方法、解析システム及び解析プログラム | |
JP6023317B2 (ja) | 情報処理装置、および、情報処理方法 | |
CN111813672B (zh) | 一种针对多种处理器架构的非侵入式覆盖率统计方法 | |
TWI656453B (zh) | 檢測系統及檢測方法 | |
CN113176926B (zh) | 一种基于虚拟机自省技术的api动态监控方法及系统 | |
JP5800777B2 (ja) | 情報処理装置及び情報処理方法及びプログラム | |
JP2007018254A (ja) | 言語処理装置 | |
US11294653B2 (en) | Methods and systems of disassembling executable code | |
CN112861138A (zh) | 软件安全性分析方法及分析装置、电子设备及存储介质 | |
JP2009064125A (ja) | サーバ装置、そのプログラム | |
KR101583306B1 (ko) | 가상화 난독화 기법이 적용된 실행 파일의 분석 방법 및 분석 장치 | |
RU2390821C1 (ru) | Способ динамической инструментации | |
JP2015114786A (ja) | 情報処理システム及びプログラム | |
CN116009825A (zh) | 一种快捷操作在线集成开发环境的方法、系统及装置 | |
JP2005301415A (ja) | コンパイル方式、シミュレータ、エミュレータおよびプログラム開発支援システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20141203 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20150724 |
|
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: 20150728 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150825 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5800777 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |