-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathprint_stack_trace.js
More file actions
38 lines (30 loc) · 1.16 KB
/
Copy pathprint_stack_trace.js
File metadata and controls
38 lines (30 loc) · 1.16 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
function print_exception_stack_trace()
{
let log_utils_cls = Java.use("android.util.Log");
let exception_cls = Java.use("java.lang.Exception");
let stack_trace_str = log_utils_cls.getStackTraceString(exception_cls.$new());
console.log(stack_trace_str);
}
function print_throwable_stack_trace()
{
let PrintWriter = Java.use('java.io.PrintWriter');
let StringWriter = Java.use('java.io.StringWriter');
let throwable = Java.use('java.lang.Throwable').$new();
let sw = StringWriter.$new();
let pw = PrintWriter.$new(sw);
throwable.printStackTrace(pw);
console.log(sw.toString());
}
function print_thread_stack_trace()
{
let Thread = Java.use('java.lang.Thread');
let currentThread = Thread.currentThread();
let stackTrace = currentThread.getStackTrace();
stackTrace.forEach(function(stackTraceElement) {
let fileName = stackTraceElement.getFileName();
let className = stackTraceElement.getClassName();
let methodName = stackTraceElement.getMethodName();
let lineNumber = stackTraceElement.getLineNumber();
console.log(`${className}.${methodName} at ${fileName}:${lineNumber}`);
});
}