libbinder: add way to debug print stability

Bug: 136027762
Test: manual
Change-Id: Id390f0459fd162a20bbd64870fc568a87f422f15
diff --git a/libs/binder/Stability.cpp b/libs/binder/Stability.cpp
index 0bcce5b..0a10a1d 100644
--- a/libs/binder/Stability.cpp
+++ b/libs/binder/Stability.cpp
@@ -28,6 +28,10 @@
     LOG_ALWAYS_FATAL_IF(result != OK, "Should only mark known object.");
 }
 
+void Stability::debugLogStability(const std::string& tag, const sp<IBinder>& binder) {
+    ALOGE("%s: stability is %s", tag.c_str(), stabilityString(get(binder.get())).c_str());
+}
+
 void Stability::tryMarkCompilationUnit(IBinder* binder) {
     (void) set(binder, kLocalStability, false /*log*/);
 }
diff --git a/libs/binder/include/binder/Stability.h b/libs/binder/include/binder/Stability.h
index 148def6..9d98c7f 100644
--- a/libs/binder/include/binder/Stability.h
+++ b/libs/binder/include/binder/Stability.h
@@ -40,6 +40,9 @@
     //     expressed here is guaranteed to be stable for multiple years (Stable AIDL)
     static void markVintf(IBinder* binder);
 
+    // WARNING: for debugging only
+    static void debugLogStability(const std::string& tag, const sp<IBinder>& binder);
+
 private:
     // Parcel needs to store stability level since this is more efficient than storing and looking
     // up the efficiency level of a binder object. So, we expose the underlying type.