summaryrefslogtreecommitdiff
path: root/tools/lock_agent/agent.cpp
diff options
context:
space:
mode:
authorAndreas Gampe <agampe@google.com>2019-06-18 12:36:46 -0700
committerAndreas Gampe <agampe@google.com>2019-06-20 16:31:58 -0700
commit8695b40720dcda3ded314c7ec962578883e83f78 (patch)
tree6999d64d000be0e425b0dbc9af5f7083ce9b5199 /tools/lock_agent/agent.cpp
parent5e2a8849c75693f2d4a78e3474ba7d711aeaef46 (diff)
LockAgent: Add option to synthesize Java crash logging
Add the ability to dump a "crash" to logcat. Test: m Test: manual Change-Id: I0692a91df995883e526a718fe95f0d3568ac9328
Diffstat (limited to 'tools/lock_agent/agent.cpp')
-rw-r--r--tools/lock_agent/agent.cpp8
1 files changed, 8 insertions, 0 deletions
diff --git a/tools/lock_agent/agent.cpp b/tools/lock_agent/agent.cpp
index 5b1d52e809aa..c639427e645e 100644
--- a/tools/lock_agent/agent.cpp
+++ b/tools/lock_agent/agent.cpp
@@ -68,6 +68,7 @@ namespace {
JavaVM* gJavaVM = nullptr;
bool gForkCrash = false;
+bool gJavaCrash = false;
// Converts a class name to a type descriptor
// (ex. "java.lang.String" to "Ljava/lang/String;")
@@ -394,6 +395,8 @@ jint attach(JavaVM* vm, char* options, void* reserved ATTRIBUTE_UNUSED) {
for (const std::string& c : config) {
if (c == "native_crash") {
gForkCrash = true;
+ } else if (c == "java_crash") {
+ gJavaCrash = true;
}
}
@@ -405,6 +408,11 @@ jboolean JNICALL Java_com_android_lock_1checker_LockHook_getNativeHandlingConfig
return gForkCrash ? JNI_TRUE : JNI_FALSE;
}
+extern "C" JNIEXPORT jboolean JNICALL
+Java_com_android_lock_1checker_LockHook_getSimulateCrashConfig(JNIEnv*, jclass) {
+ return gJavaCrash ? JNI_TRUE : JNI_FALSE;
+}
+
extern "C" JNIEXPORT void JNICALL Java_com_android_lock_1checker_LockHook_nWtf(JNIEnv* env, jclass,
jstring msg) {
if (!gForkCrash || msg == nullptr) {