fdtrack: increase backtrace depth.
Bug: http://b/155136951
Bug: http://b/157789860
Test: treehugger
Change-Id: I1e575fdef7d520f5a896130844eefb1a1ba46694
diff --git a/libfdtrack/fdtrack.cpp b/libfdtrack/fdtrack.cpp
index d371577..898bc43 100644
--- a/libfdtrack/fdtrack.cpp
+++ b/libfdtrack/fdtrack.cpp
@@ -57,7 +57,10 @@
// Backtraces for the first 4k file descriptors ought to be enough to diagnose an fd leak.
static constexpr size_t kFdTableSize = 4096;
-static constexpr size_t kStackDepth = 10;
+
+// 32 frames, plus two to skip from fdtrack itself.
+static constexpr size_t kStackDepth = 34;
+static constexpr size_t kStackFrameSkip = 2;
static bool installed = false;
static std::array<FdEntry, kFdTableSize> stack_traces [[clang::no_destroy]];
@@ -134,15 +137,14 @@
continue;
}
- constexpr size_t frame_skip = 2;
- for (size_t i = frame_skip; i < entry->backtrace.size(); ++i) {
- size_t j = i - frame_skip;
+ for (size_t i = kStackFrameSkip; i < entry->backtrace.size(); ++i) {
+ size_t j = i - kStackFrameSkip;
function_names[j] = entry->backtrace[i].function_name.c_str();
function_offsets[j] = entry->backtrace[i].function_offset;
}
- bool should_continue =
- callback(fd, function_names, function_offsets, entry->backtrace.size() - frame_skip, arg);
+ bool should_continue = callback(fd, function_names, function_offsets,
+ entry->backtrace.size() - kStackFrameSkip, arg);
entry->mutex.unlock();