比如在BufferQueueConsumer.cpp打印堆栈
diff --git a/frameworks/native/libs/gui/Android.bp b/frameworks/native/libs/gui/Android.bp
index f734582377..b86ad34ee2 100644
--- a/frameworks/native/libs/gui/Android.bp
+++ b/frameworks/native/libs/gui/Android.bp
@@ -146,6 +146,8 @@ cc_defaults {
"libbufferhub",
"libbufferhubqueue", // TODO(b/70046255): Remove this once BufferHub is integrated into libgui.
"libinput",
+ "libutils",
+ "libutilscallstack",
"libpdx_default_transport",
],
frameworks/native/libs/gui/BufferQueueConsumer.cpp
diff --git a/frameworks/native/libs/gui/BufferQueueConsumer.cpp b/frameworks/native/libs/gui/BufferQueueConsumer.cpp
index 638282a600..b3684d2fe9 100644
--- a/frameworks/native/libs/gui/BufferQueueConsumer.cpp
+++ b/frameworks/native/libs/gui/BufferQueueConsumer.cpp
@@ -39,7 +39,7 @@
#include <binder/PermissionCache.h>
#include <vndksupport/linker.h>
#endif
-
+#include <utils/CallStack.h>
#include <system/window.h>
namespace android {
@@ -544,7 +544,9 @@ status_t BufferQueueConsumer::disconnect() {
BQ_LOGE("disconnect: no consumer is connected");
return BAD_VALUE;
}
-
+ CallStack stack("disconnect");
+ stack.update();
+ stack.log("disconnect",ANDROID_LOG_ERROR,"");
mCore->mIsAbandoned = true;
mCore->mConsumerListener = nullptr;
mCore->mQueue.clear();