比如在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();