aboutsummaryrefslogtreecommitdiff
path: root/libfdtrack
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2020-01-28 15:13:47 -0800
committerJosh Gao <jmgao@google.com>2020-01-30 13:55:11 -0800
commit6f08866e3328cb43e2432a19a954885677930c68 (patch)
tree2723453d6a95654a1f745cfc30e234eadc42da9e /libfdtrack
parent50955c461bbfb35b06ecc3f862e41e50a6eba409 (diff)
downloadbionic-6f08866e3328cb43e2432a19a954885677930c68.tar.gz
fdtrack: print fdsan owner tag.
Test: logcat -c; fdtrack_test; logcat -d | grep fdtrack Change-Id: I0a7e342da239a0e7889eb228a3a023268d40b1c5
Diffstat (limited to 'libfdtrack')
-rw-r--r--libfdtrack/fdtrack.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/libfdtrack/fdtrack.cpp b/libfdtrack/fdtrack.cpp
index 9506751c9..831a50d1b 100644
--- a/libfdtrack/fdtrack.cpp
+++ b/libfdtrack/fdtrack.cpp
@@ -32,6 +32,7 @@
#include <mutex>
#include <vector>
+#include <android/fdsan.h>
#include <bionic/fdtrack.h>
#include <android-base/no_destructor.h>
@@ -119,7 +120,15 @@ void fdtrack_dump() {
continue;
}
- async_safe_format_log(ANDROID_LOG_INFO, "fdtrack", "fd %d:", fd);
+ uint64_t fdsan_owner = android_fdsan_get_owner_tag(fd);
+
+ if (fdsan_owner != 0) {
+ async_safe_format_log(ANDROID_LOG_INFO, "fdtrack", "fd %d: (owner = %#" PRIx64 ")", fd,
+ fdsan_owner);
+ } else {
+ async_safe_format_log(ANDROID_LOG_INFO, "fdtrack", "fd %d: (unowned)", fd);
+ }
+
const size_t frame_skip = 2;
for (size_t i = frame_skip; i < entry->backtrace.size(); ++i) {
auto& frame = entry->backtrace[i];