JP6648306B2 - 異常スタック情報取得方法、装置及びコンピュータ読み取り可能な記憶媒体 - Google Patents
異常スタック情報取得方法、装置及びコンピュータ読み取り可能な記憶媒体 Download PDFInfo
- Publication number
- JP6648306B2 JP6648306B2 JP2018553347A JP2018553347A JP6648306B2 JP 6648306 B2 JP6648306 B2 JP 6648306B2 JP 2018553347 A JP2018553347 A JP 2018553347A JP 2018553347 A JP2018553347 A JP 2018553347A JP 6648306 B2 JP6648306 B2 JP 6648306B2
- Authority
- JP
- Japan
- Prior art keywords
- abnormal
- stack information
- information
- abnormal stack
- abnormality
- 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
- 230000002159 abnormal effect Effects 0.000 title claims description 390
- 238000000034 method Methods 0.000 title claims description 77
- 230000006870 function Effects 0.000 claims description 120
- 238000012545 processing Methods 0.000 claims description 83
- 230000005856 abnormality Effects 0.000 claims description 65
- 238000004891 communication Methods 0.000 description 4
- 238000005538 encapsulation Methods 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007667 floating Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 239000011800 void material Substances 0.000 description 2
- 238000004590 computer program Methods 0.000 description 1
- 238000007796 conventional method Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0772—Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0721—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment within a central processing unit [CPU]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0778—Dumping, i.e. gathering error/state information after a fault for later diagnosis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0766—Error or fault reporting or storing
- G06F11/0787—Storage of error reports, e.g. persistent data storage, storage using memory protection
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Debugging And Monitoring (AREA)
- Stored Programmes (AREA)
- Executing Machine-Instructions (AREA)
- Retry When Errors Occur (AREA)
Description
本願は、パリ条約により2017年06月12日に提出した「異常スタック情報取得方法、装置及びコンピュータ読み取り可能な記憶媒体」と題する中国特許出願(出願番号CN201710440288.8)の優先権を主張し、その全体内容を参照し、ここに援用する。
アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得することと、
前記異常信号を検出したときにアプリケーション層が記録した第2の異常スタック情報を読み取ることと、
前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了することと、を含む。
前記アイテムが動作する過程で所定の異常信号を検出したとき、前記アイテムの動作するオペレーティングシステムのバージョン情報を確定することと、
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼びして実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成することと、を含む。
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得することと、
前記アドレス情報に基づき異常スタックデータを取得し、検出した前記異常信号の信号タイプを取得することと、
前記信号タイプと前記異常スタックデータとを組み合わせて前記第1の異常スタック情報を生成することと、を含む。
記憶されているシンボルテーブルを読み取り、且つ前記シンボルテーブルに基づき、取得した第1の異常スタック情報に対して復元処理を行うことにより、前記第1の異常スタック情報を前記サーバが読み取り可能な第3の異常スタック情報に変換することと、
前記第3の異常スタック情報と前記第2の異常スタック情報とを組み合わせて前記サーバに報告し、且つ報告を完了した後、前記アイテムを終了することと、を含む。
アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得するステップと、
前記異常信号を検出したときにアプリケーション層が記録した第2の異常スタック情報を読み取るステップと、
前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を実現する。
前記アイテムが動作する過程で所定の異常信号を検出したとき、前記アイテムの動作するオペレーティングシステムのバージョン情報を確定することと、
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成することと、を含む。
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得することと、
前記アドレス情報に基づき異常スタックデータを取得し、検出した前記異常信号の信号タイプを取得することと、
前記信号タイプと前記異常スタックデータとを組み合わせて前記第1の異常スタック情報を生成することと、を含む。
記憶されているシンボルテーブルを読み取り、且つ前記シンボルテーブルに基づき、取得した第1の異常スタック情報に対して復元処理を行うことにより、前記第1の異常スタック情報を前記サーバが読み取り可能な第3の異常スタック情報に変換することと、
前記第3の異常スタック情報と前記第2の異常スタック情報とを組み合わせて前記サーバに報告し、且つ報告を完了した後、前記アイテムを終了することと、を含む。
情報復元スクリプトを起動し、前記情報復元スクリプトに基づき、前記第1の異常スタック情報における関数名を順次前記シンボルテーブルにおける関数名と1つずつマッチングし、前記第1の異常スタック情報における関数名に対応するファイル名及び行番号を取得することと、
取得したファイル名及び行番号を元の第1の異常スタック情報に追加し、前記サーバが読み取り可能な第3の異常スタック情報を生成することと、を含む。
アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得するステップと、
前記異常信号を検出したときにアプリケーション層が記録した第2の異常スタック情報を読み取るステップと、
前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を実現する。
_SIGABRT:プログラムの異常終了で、abort関数を呼び出すことで生成される</br>_
_SIGILL:無効命令異常</br>_
_SIGBUS:特定のハードウェア異常で、一般的にメモリへのアクセスにより引き起こされる</br>_
_SIGFPE:算術例外で、例えば0除算、浮動小数点オーバーフローなど</br>_
_SIGSEGV:メモリへの不正アクセス</br>_。
<pre><code>
/* Signals to be caught. */
#define SIG_CATCH_COUNT 5
static const int native_sig_catch[SIG_CATCH_COUNT]= {SIGABRT, SIGILL, SIGBUS, SIGFPE, SIGSEGV};
/*
* 登録異常信号処理関数
*/
int sigaction_handler_init(void) {
struct sigaction sa_catch;
sa_catch.sa_sigaction = skn_signal_handler;
sa_catch.sa_flags = SA_SIGINFO;
size_t i = 0;
for (i = 0; native_sig_catch[i] != 0; i++) {
const int sig = native_sig_catch[i];
const struct sigaction *const action = &sa_catch;
if (sigaction(sig, action, NULL) != 0) {
return -1;
}
}
return 0;
}
</code></pre>
前記アイテムが動作する過程で所定の異常信号を検出したとき、前記アイテムの動作するオペレーティングシステムのバージョン情報を確定するステップと、前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成するステップと、を含んでもよい。
<code><pre>
\_Z2aav /data/app/com.pingan.pad_demo-2/lib/arm/libcrash.so
</code></pre>
上記の情報復元スクリプトにより復元された異常情報は、以下となる。
<code><pre>
Z2aav
/Users/duyuan797/Workspace/sky-eye/sky-eye/src/main/cpp/./src/skncrash.cpp:72 /data/app/com.pingan.pad_demo-2/lib/arm/libcrash.so
</code></pre>
アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得するステップと、
前記異常信号を検出したときにアプリケーション層が記録した第2の異常スタック情報を読み取るステップと、
前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を実現する。
_SIGABRT:プログラムの異常終了で、abort関数を呼び出すことで生成される</br>_
_SIGILL:無効命令異常</br>_
_SIGBUS:特定のハードウェア異常で、一般的にメモリへのアクセスにより引き起こされる</br>_
_SIGFPE:算術例外で、例えば0除算、浮動小数点オーバーフローなど</br>_
_SIGSEGV:メモリへの不正アクセス</br>_。
<pre><code>
/* Signals to be caught. */
#define SIG_CATCH_COUNT 5
static const int native_sig_catch[SIG_CATCH_COUNT]= {SIGABRT, SIGILL, SIGBUS, SIGFPE, SIGSEGV};
/*
* 登録異常信号処理関数
*/
int sigaction_handler_init(void) {
struct sigaction sa_catch;
sa_catch.sa_sigaction = skn_signal_handler;
sa_catch.sa_flags = SA_SIGINFO;
size_t i = 0;
for (i = 0; native_sig_catch[i] != 0; i++) {
const int sig = native_sig_catch[i];
const struct sigaction *const action = &sa_catch;
if (sigaction(sig, action, NULL) != 0) {
return -1;
}
}
return 0;
}
</code></pre>
前記アイテムが動作する過程で所定の異常信号を検出したとき、前記アイテムの動作するオペレーティングシステムのバージョン情報を確定するステップと、
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成するステップと、を実現する。
オペレーティングシステムのバージョンが所定のバージョン未満の場合、第1の所定関数を呼び出して異常が発生するアドレス情報を取得し、dladdr関数によりアドレス情報に対応する関数名及びsoライブラリ情報を取得し、あるいは、オペレーティングシステムのバージョンが所定のバージョン以上の場合、dlopen関数により所定のパスで第2の所定関数を呼び出して異常が発生するアドレス情報を取得し、dladdr関数によりアドレス情報に対応する関数名及びsoライブラリ情報を取得するステップを実現する。
記憶されているシンボルテーブルを読み取り、且つ前記シンボルテーブルに基づき、取得した第1の異常スタック情報に対して復元処理を行うことにより、前記第1の異常スタック情報を前記サーバが読み取り可能な第3の異常スタック情報に変換するステップと、
前記第3の異常スタック情報と前記第2の異常スタック情報とを組み合わせて前記サーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を実現する。
情報復元スクリプトを起動し、前記情報復元スクリプトに基づき、前記第1の異常スタック情報における関数名を順次前記シンボルテーブルにおける関数名と1つずつマッチングし、前記第1の異常スタック情報における関数名に対応するファイル名及び行番号を取得するステップと、取得したファイル名及び行番号を元の第1の異常スタック情報に追加し、前記サーバが読み取り可能な第3の異常スタック情報を生成するステップと、を実現する。
<code><pre>
\_Z2aav /data/app/com.pingan.pad_demo-2/lib/arm/libcrash.so
</code></pre>
上記の情報復元スクリプトにより復元された異常情報は、以下となる。
<code><pre>
Z2aav
/Users/duyuan797/Workspace/sky-eye/sky-eye/src/main/cpp/./src/skncrash.cpp:72 /data/app/com.pingan.pad_demo-2/lib/arm/libcrash.so
</code></pre>
アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得する動作と、
前記異常信号を検出したときにアプリケーション層が記録した第2の異常スタック情報を読み取る動作と、
前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了する動作と、を実現する。
前記アイテムが動作する過程で所定の異常信号を検出したとき、前記アイテムの動作するオペレーティングシステムのバージョン情報を確定する動作と、
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成する動作と、を実現する。
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得する動作と、
前記アドレス情報に基づき異常スタックデータを取得し、検出した前記異常信号の信号タイプを取得する動作と、
前記信号タイプと前記異常スタックデータとを組み合わせて前記第1の異常スタック情報を生成す動作と、を実現する。
記憶されているシンボルテーブルを読み取り、且つ前記シンボルテーブルに基づき、取得した第1の異常スタック情報に対して復元処理を行うことにより、前記第1の異常スタック情報を前記サーバが読み取り可能な第3の異常スタック情報に変換する動作と、
前記第3の異常スタック情報と前記第2の異常スタック情報とを組み合わせて前記サーバに報告し、且つ報告を完了した後、前記アイテムを終了する動作と、を実現する。
Claims (11)
- 異常スタック情報取得方法であって、
アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得するステップと、
前記異常信号を検出したときにアプリケーション層が記録した第2の異常スタック情報を読み取るステップと、
前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を含むことを特徴とする異常スタック情報取得方法。 - アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得する前記ステップは、
前記アイテムが動作する過程で所定の異常信号を検出したとき、前記アイテムの動作するオペレーティングシステムのバージョン情報を確定するステップと、
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成するステップと、を含むことを特徴とする請求項1に記載の異常スタック情報取得方法。 - 前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成する前記ステップは、
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得するステップと、
前記アドレス情報に基づき異常スタックデータを取得し、検出した前記異常信号の信号タイプを取得するステップと、
前記信号タイプと前記異常スタックデータとを組み合わせて前記第1の異常スタック情報を生成するステップと、を含むことを特徴とする請求項2に記載の異常スタック情報取得方法。 - 前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了する前記ステップは、
記憶されているシンボルテーブルを読み取り、且つ前記シンボルテーブルに基づき、取得した第1の異常スタック情報に対して復元処理を行うことにより、前記第1の異常スタック情報を前記サーバが読み取り可能な第3の異常スタック情報に変換するステップと、
前記第3の異常スタック情報と前記第2の異常スタック情報とを組み合わせて前記サーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を含むことを特徴とする請求項2または3に記載の異常スタック情報取得方法。 - 記憶されているシンボルテーブルを読み取り、且つ前記シンボルテーブルに基づき、取得した第1の異常スタック情報に対して復元処理を行うことにより、前記第1の異常スタック情報を前記サーバが読み取り可能な第3の異常スタック情報に変換する前記ステップは、
情報復元スクリプトを起動し、前記情報復元スクリプトに基づき、前記第1の異常スタック情報における関数名を順次前記シンボルテーブルにおける関数名と1つずつマッチングし、前記第1の異常スタック情報における関数名に対応するファイル名及び行番号を取得するステップと、
取得したファイル名及び行番号を元の第1の異常スタック情報に追加し、前記サーバが読み取り可能な第3の異常スタック情報を生成するステップと、を含むことを特徴とする請求項4に記載の異常スタック情報取得方法。 - 異常スタック情報取得装置であって、
記憶手段と、処理手段と、前記記憶手段に記憶されており、且つ前記処理手段で動作可能な異常スタック情報取得プログラムとを含み、前記異常スタック情報取得プログラムが前記処理手段により実行されるとき、
アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得するステップと、
前記異常信号を検出したときにアプリケーション層が記録した第2の異常スタック情報を読み取るステップと、
前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を実現することを特徴とする異常スタック情報取得装置。 - アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得する前記ステップは、
前記アイテムが動作する過程で所定の異常信号を検出したとき、前記アイテムの動作するオペレーティングシステムのバージョン情報を確定するステップと、
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成するステップと、を含むことを特徴とする請求項6に記載の異常スタック情報取得装置。 - オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得し、且つ前記アドレス情報に基づき第1の異常スタック情報を生成する前記ステップは、
前記オペレーティングシステムのバージョン情報に対応する異常信号処理関数を呼び出して実行し、異常が発生するアドレス情報を取得するステップと、
前記アドレス情報に基づき異常スタックデータを取得し、検出した前記異常信号の信号タイプを取得するステップと、
前記信号タイプと前記異常スタックデータとを組み合わせて前記第1の異常スタック情報を生成するステップと、を含むことを特徴とする請求項7に記載の異常スタック情報取得装置。 - 前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了する前記ステップは、
記憶されているシンボルテーブルを読み取り、且つ前記シンボルテーブルに基づき、取得した第1の異常スタック情報に対して復元処理を行うことにより、前記第1の異常スタック情報を前記サーバが読み取り可能な第3の異常スタック情報に変換するステップと、
前記第3の異常スタック情報と前記第2の異常スタック情報とを組み合わせて前記サーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を含むことを特徴とする請求項6乃至8のいずれか一項に記載の異常スタック情報取得装置。 - 記憶されているシンボルテーブルを読み取り、且つ前記シンボルテーブルに基づき、取得した第1の異常スタック情報に対して復元処理を行うことにより、前記第1の異常スタック情報を前記サーバが読み取り可能な第3の異常スタック情報に変換する前記ステップは、
情報復元スクリプトを起動し、前記情報復元スクリプトに基づき、前記第1の異常スタック情報における関数名を順次前記シンボルテーブルにおける関数名と1つずつマッチングし、前記第1の異常スタック情報における関数名に対応するファイル名及び行番号を取得するステップと、
取得したファイル名及び行番号を元の第1の異常スタック情報に追加し、前記サーバが読み取り可能な第3の異常スタック情報を生成するステップと、を含むことを特徴とする請求項9に記載の異常スタック情報取得装置。 - コンピュータ読み取り可能な記憶媒体であって、
当該媒体に異常スタック情報取得プログラムが記憶されており、前記異常スタック情報取得プログラムが処理手段により実行されるとき、
アイテムが動作する過程で所定の異常信号を検出したとき、異常信号処理関数を呼び出して実行することにより、native層の第1の異常スタック情報を取得するステップと、
前記異常信号を検出したときにアプリケーション層が記録した第2の異常スタック情報を読み取るステップと、
前記第1の異常スタック情報と前記第2の異常スタック情報とを組み合わせてサーバに報告し、且つ報告を完了した後、前記アイテムを終了するステップと、を実現することを特徴とするコンピュータ読み取り可能な記憶媒体。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710440288.8 | 2017-06-12 | ||
CN201710440288.8A CN107704356B (zh) | 2017-06-12 | 2017-06-12 | 异常堆栈信息获取方法、装置及计算机可读存储介质 |
PCT/CN2017/105018 WO2018227822A1 (zh) | 2017-06-12 | 2017-09-30 | 异常堆栈信息获取方法、装置及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2019525275A JP2019525275A (ja) | 2019-09-05 |
JP6648306B2 true JP6648306B2 (ja) | 2020-02-14 |
Family
ID=61170175
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018553347A Active JP6648306B2 (ja) | 2017-06-12 | 2017-09-30 | 異常スタック情報取得方法、装置及びコンピュータ読み取り可能な記憶媒体 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11010227B2 (ja) |
JP (1) | JP6648306B2 (ja) |
CN (1) | CN107704356B (ja) |
SG (1) | SG11201901803SA (ja) |
WO (1) | WO2018227822A1 (ja) |
Families Citing this family (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110275791A (zh) * | 2018-03-14 | 2019-09-24 | 普天信息技术有限公司 | 一种应用程序异常处理方法及装置 |
CN108763060A (zh) * | 2018-04-27 | 2018-11-06 | 广州华多网络科技有限公司 | Android系统中Native层崩溃溯源方法、装置、存储介质及终端 |
CN108846287A (zh) * | 2018-06-26 | 2018-11-20 | 北京奇安信科技有限公司 | 一种检测漏洞攻击的方法及装置 |
CN112181695A (zh) * | 2019-07-01 | 2021-01-05 | 顺丰科技有限公司 | 异常应用处理方法、装置、服务器及存储介质 |
CN110750375B (zh) * | 2019-07-16 | 2023-07-21 | 许昌许继软件技术有限公司 | 一种嵌入式设备及其异常信息处理方法 |
CN110457154B (zh) * | 2019-07-25 | 2023-12-22 | Oppo广东移动通信有限公司 | 异常服务处理方法及装置、存储介质、通信终端 |
CN111176869B (zh) * | 2019-08-01 | 2022-05-10 | 腾讯云计算(北京)有限责任公司 | 超时检测方法、装置、设备及存储介质 |
CN112395119B (zh) * | 2019-08-12 | 2024-03-12 | 北京达佳互联信息技术有限公司 | 异常数据处理方法、装置、服务器及存储介质 |
CN111159051B (zh) * | 2019-12-31 | 2023-07-04 | 北京天融信网络安全技术有限公司 | 死锁检测方法、装置、电子设备及可读存储介质 |
CN113297052B (zh) * | 2020-02-21 | 2024-04-26 | 腾讯科技(深圳)有限公司 | 应用程序的卡顿事件定位方法、装置、存储介质和设备 |
CN111414270B (zh) * | 2020-03-24 | 2023-05-09 | 北京字节跳动网络技术有限公司 | 一种异常处理方法及装置 |
CN111767164B (zh) * | 2020-05-18 | 2022-08-09 | 福建天晴数码有限公司 | 一种组装产品中定位崩溃堆栈所属组件的方法及其系统 |
CN113900914A (zh) * | 2020-06-22 | 2022-01-07 | 阿里巴巴集团控股有限公司 | 异常处理方法、装置、电子设备及计算机存储介质 |
CN114253825B (zh) * | 2020-09-22 | 2024-06-21 | 腾讯科技(深圳)有限公司 | 内存泄漏检测方法、装置、计算机设备和存储介质 |
CN113760588A (zh) * | 2020-11-04 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种软件系统的异常信息获取方法和装置 |
CN113867847A (zh) * | 2021-11-30 | 2021-12-31 | 统信软件技术有限公司 | 一种异常插件处理方法、装置及计算设备 |
CN114020540A (zh) * | 2022-01-05 | 2022-02-08 | 湖南新云网科技有限公司 | 一种app重启方法、系统、装置及计算机可读存储介质 |
Family Cites Families (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6996829B2 (en) * | 2000-02-25 | 2006-02-07 | Oracle International Corporation | Handling callouts made by a multi-threaded virtual machine to a single threaded environment |
US7003778B2 (en) * | 2001-10-24 | 2006-02-21 | Sun Microsystems, Inc. | Exception handling in java computing environments |
CN1328638C (zh) * | 2005-08-04 | 2007-07-25 | 西安交通大学 | Windows环境下的主机入侵检测方法 |
US20070294675A1 (en) * | 2006-06-20 | 2007-12-20 | Transitive Limited | Method and apparatus for handling exceptions during binding to native code |
US7962924B2 (en) * | 2007-06-07 | 2011-06-14 | International Business Machines Corporation | System and method for call stack sampling combined with node and instruction tracing |
US8291381B2 (en) * | 2007-09-27 | 2012-10-16 | Microsoft Corporation | Call stack parsing in multiple runtime environments |
US20090013208A1 (en) * | 2008-03-31 | 2009-01-08 | Dimuzio Thomas M | Real time automated exception notification and reporting solution |
CN100570581C (zh) * | 2008-04-09 | 2009-12-16 | 中兴通讯股份有限公司 | 故障定位的方法和装置 |
CN101599039B (zh) * | 2008-06-03 | 2011-11-02 | 华为技术有限公司 | 嵌入式c语言环境下异常处理方法及装置 |
US8799904B2 (en) * | 2011-01-21 | 2014-08-05 | International Business Machines Corporation | Scalable system call stack sampling |
CN103152381B (zh) * | 2013-01-07 | 2016-06-29 | 北京奇虎科技有限公司 | 一种对浏览器崩溃数据进行处理的方法和服务器系统 |
CN103092746B (zh) * | 2013-02-05 | 2015-12-02 | 上海大唐移动通信设备有限公司 | 线程异常的定位方法及系统 |
CN103544447B (zh) * | 2013-05-30 | 2016-10-12 | Tcl集团股份有限公司 | 一种基于安卓系统的防止机密信息泄露的方法和终端 |
CN104424090A (zh) * | 2013-08-22 | 2015-03-18 | 腾讯科技(深圳)有限公司 | 一种标识崩溃的方法、装置和系统 |
US9852041B2 (en) * | 2013-09-27 | 2017-12-26 | Microsoft Technology Licensing, Llc | Systems and methods for categorizing exceptions and logs |
CN103544096A (zh) * | 2013-10-21 | 2014-01-29 | Tcl集团股份有限公司 | Android终端运行异常时的信息反馈方法及系统 |
EP2879074A1 (en) * | 2013-11-29 | 2015-06-03 | Gemalto SA | Method for loading a native code on a secure element |
CN104021063B (zh) * | 2014-05-14 | 2015-03-11 | 南京大学 | 一种基于硬件虚拟化的模块化计算机取证系统及其方法 |
CN105320572B (zh) * | 2014-06-27 | 2019-02-22 | 腾讯科技(深圳)有限公司 | 浏览器异常处理方法、装置及系统 |
CN104598313A (zh) * | 2015-02-04 | 2015-05-06 | 广州市久邦数码科技有限公司 | 一种应用进程被停止后自动重启的实现方法及其系统 |
CN104899111B (zh) * | 2015-06-09 | 2018-03-20 | 烽火通信科技股份有限公司 | 一种处理家庭网关系统内核崩溃的方法及系统 |
CN105204990B (zh) * | 2015-08-21 | 2017-11-28 | 上海斐讯数据通信技术有限公司 | 一种异常调试方法及系统 |
CN105450731A (zh) * | 2015-11-05 | 2016-03-30 | 珠海多玩信息技术有限公司 | 实现web层和native层通信的方法和装置 |
CN105446822B (zh) * | 2015-11-13 | 2019-06-18 | 上海斐讯数据通信技术有限公司 | 基于Linux的软件异常处理系统及方法 |
CN105653432B (zh) * | 2015-12-22 | 2019-02-15 | 北京奇虎科技有限公司 | 一种崩溃数据的处理方法和装置 |
CN105930139A (zh) * | 2016-01-16 | 2016-09-07 | 平安科技(深圳)有限公司 | 应用程序控件动态配置方法及电子设备 |
CN105844157A (zh) * | 2016-04-20 | 2016-08-10 | 北京鼎源科技有限公司 | 一种针对Android系统App行为的监控方法 |
CN106293629B (zh) * | 2016-08-16 | 2019-08-06 | 北京小米移动软件有限公司 | 堆栈获取方法及装置 |
CN106598770B (zh) * | 2016-12-19 | 2020-08-18 | 北京奇虎科技有限公司 | Android系统中Native层异常上报处理方法及装置 |
US20200387357A1 (en) * | 2017-12-05 | 2020-12-10 | Agile Stacks Inc. | Machine generated automation code for software development and infrastructure operations |
US10782945B1 (en) * | 2019-04-04 | 2020-09-22 | International Business Machines Corporation | Escape analysis supporting on-stack replacement |
-
2017
- 2017-06-12 CN CN201710440288.8A patent/CN107704356B/zh active Active
- 2017-09-30 JP JP2018553347A patent/JP6648306B2/ja active Active
- 2017-09-30 SG SG11201901803SA patent/SG11201901803SA/en unknown
- 2017-09-30 US US16/088,831 patent/US11010227B2/en active Active
- 2017-09-30 WO PCT/CN2017/105018 patent/WO2018227822A1/zh active Application Filing
Also Published As
Publication number | Publication date |
---|---|
JP2019525275A (ja) | 2019-09-05 |
WO2018227822A1 (zh) | 2018-12-20 |
US11010227B2 (en) | 2021-05-18 |
CN107704356A (zh) | 2018-02-16 |
SG11201901803SA (en) | 2019-04-29 |
US20210096942A1 (en) | 2021-04-01 |
CN107704356B (zh) | 2019-06-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6648306B2 (ja) | 異常スタック情報取得方法、装置及びコンピュータ読み取り可能な記憶媒体 | |
CN109302522B (zh) | 测试方法、装置以及计算机系统和介质 | |
US9342237B2 (en) | Automated testing of gesture-based applications | |
US8336029B1 (en) | Debugger connection | |
US7165170B2 (en) | System and method for firmware to export pre-boot data into the operating system runtime environment | |
CN109726067B (zh) | 一种进程监控方法以及客户端设备 | |
CN110046479B (zh) | 一种基于安卓操作系统的链接库文件反调试方法及装置 | |
CN104063305A (zh) | 智能终端软件的压力测试方法、装置和系统 | |
WO2019019668A1 (zh) | 应用程序启动方法、装置、计算机设备和存储介质 | |
US10191751B2 (en) | Information processing device for generating application programming interface information | |
US10176327B2 (en) | Method and device for preventing application in an operating system from being uninstalled | |
CN110879742A (zh) | 虚拟机异步创建内部快照方法、装置及存储介质 | |
CN107885635B (zh) | 黑屏检测方法、移动终端及计算机可读存储介质 | |
CN112394906B (zh) | 一种应用切换运行的方法及设备 | |
CN111190791A (zh) | 应用异常上报方法、装置和电子设备 | |
CN107861827B (zh) | 卡屏检测方法、移动终端及计算机可读存储介质 | |
CN109408133B (zh) | 一种启动组件的方法和设备 | |
WO2021057411A1 (zh) | 一种组件加载方法、装置及系统 | |
CN104239112A (zh) | 一种设备驱动程序安装方法及装置 | |
CN116719670A (zh) | 数据处理的方法、电子设备及可读存储介质 | |
CN104317720B (zh) | 一种基于Robotium自动化脚本的移动终端自动化测试系统及方法 | |
CN108279937B (zh) | 参数的调用方法、装置、存储介质及电子设备 | |
CN114461479A (zh) | 调试多媒体处理芯片的方法、装置、存储介质和电子设备 | |
CN109726111B (zh) | 测试规则订制方法、设备、装置及计算机可读存储介质 | |
CN109684191B (zh) | 应用包构建方法、装置、设备及可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181011 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20181011 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20191120 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20191204 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20191220 |
|
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: 20200114 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20200115 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6648306 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |