Merge "Add variadic logging to libdebuggerd internal."

This commit is contained in:
Treehugger Robot 2019-11-19 19:04:55 +00:00 committed by Gerrit Code Review
commit 82a31b8749
2 changed files with 10 additions and 3 deletions

View file

@ -20,6 +20,7 @@
#include <inttypes.h>
#include <signal.h>
#include <stdarg.h>
#include <stdbool.h>
#include <sys/types.h>
@ -71,6 +72,7 @@ typedef uint32_t word_t;
// Log information onto the tombstone.
void _LOG(log_t* log, logtype ltype, const char* fmt, ...) __attribute__((format(printf, 3, 4)));
void _VLOG(log_t* log, logtype ltype, const char* fmt, va_list ap);
namespace unwindstack {
class Unwinder;

View file

@ -67,6 +67,14 @@ static bool should_write_to_kmsg() {
__attribute__((__weak__, visibility("default")))
void _LOG(log_t* log, enum logtype ltype, const char* fmt, ...) {
va_list ap;
va_start(ap, fmt);
_VLOG(log, ltype, fmt, ap);
va_end(ap);
}
__attribute__((__weak__, visibility("default")))
void _VLOG(log_t* log, enum logtype ltype, const char* fmt, va_list ap) {
bool write_to_tombstone = (log->tfd != -1);
bool write_to_logcat = is_allowed_in_logcat(ltype)
&& log->crashed_tid != -1
@ -75,10 +83,7 @@ void _LOG(log_t* log, enum logtype ltype, const char* fmt, ...) {
static bool write_to_kmsg = should_write_to_kmsg();
std::string msg;
va_list ap;
va_start(ap, fmt);
android::base::StringAppendV(&msg, fmt, ap);
va_end(ap);
if (msg.empty()) return;