summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2014-05-07 22:35:25 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-05-07 22:35:25 +0000
commitea2185acf3da4225bd359d6152b36e752d6da436 (patch)
treee1f4fdbad3ac427f3548e13d9d6dbbc9c27ed34e
parent00ff7e063699cce5194dc729df1fd20ec5230273 (diff)
parent91070a5ef29e3ebea45e23492dae56690f5fc1bc (diff)
downloadsystem_core-ea2185acf3da4225bd359d6152b36e752d6da436.zip
system_core-ea2185acf3da4225bd359d6152b36e752d6da436.tar.gz
system_core-ea2185acf3da4225bd359d6152b36e752d6da436.tar.bz2
am 91070a5e: am 5503f774: am 2c55b454: Merge "Switch to the new bionic fatal logging interface."
* commit '91070a5ef29e3ebea45e23492dae56690f5fc1bc': Switch to the new bionic fatal logging interface.
-rw-r--r--liblog/logd_write.c13
-rw-r--r--liblog/logd_write_kern.c13
2 files changed, 14 insertions, 12 deletions
diff --git a/liblog/logd_write.c b/liblog/logd_write.c
index bd36a65..4c47382 100644
--- a/liblog/logd_write.c
+++ b/liblog/logd_write.c
@@ -323,6 +323,13 @@ int __android_log_write(int prio, const char *tag, const char *msg)
tag = tmp_tag;
}
+#if __BIONIC__
+ if (prio == ANDROID_LOG_FATAL) {
+ extern void __android_set_abort_message(const char*);
+ __android_set_abort_message(msg);
+ }
+#endif
+
vec[0].iov_base = (unsigned char *) &prio;
vec[0].iov_len = 1;
vec[1].iov_base = (void *) tag;
@@ -422,14 +429,8 @@ void __android_log_assert(const char *cond, const char *tag,
strcpy(buf, "Unspecified assertion failed");
}
-#if __BIONIC__
- // Ensure debuggerd gets to see what went wrong by keeping the C library in the loop.
- extern __noreturn void __android_fatal(const char* tag, const char* format, ...) __printflike(2, 3);
- __android_fatal(tag ? tag : "", "%s", buf);
-#else
__android_log_write(ANDROID_LOG_FATAL, tag, buf);
__builtin_trap(); /* trap so we have a chance to debug the situation */
-#endif
/* NOTREACHED */
}
diff --git a/liblog/logd_write_kern.c b/liblog/logd_write_kern.c
index 8c707ad..982beaa 100644
--- a/liblog/logd_write_kern.c
+++ b/liblog/logd_write_kern.c
@@ -173,6 +173,13 @@ int __android_log_write(int prio, const char *tag, const char *msg)
tag = tmp_tag;
}
+#if __BIONIC__
+ if (prio == ANDROID_LOG_FATAL) {
+ extern void __android_set_abort_message(const char*);
+ __android_set_abort_message(msg);
+ }
+#endif
+
vec[0].iov_base = (unsigned char *) &prio;
vec[0].iov_len = 1;
vec[1].iov_base = (void *) tag;
@@ -272,14 +279,8 @@ void __android_log_assert(const char *cond, const char *tag,
strcpy(buf, "Unspecified assertion failed");
}
-#if __BIONIC__
- // Ensure debuggerd gets to see what went wrong by keeping the C library in the loop.
- extern __noreturn void __android_fatal(const char* tag, const char* format, ...) __printflike(2, 3);
- __android_fatal(tag ? tag : "", "%s", buf);
-#else
__android_log_write(ANDROID_LOG_FATAL, tag, buf);
__builtin_trap(); /* trap so we have a chance to debug the situation */
-#endif
/* NOTREACHED */
}