From e6f096a4cde5161e9e8432a6f6f2008e6bc710f4 Mon Sep 17 00:00:00 2001 From: Mathias Agopian Date: Fri, 10 Dec 2010 15:37:48 -0800 Subject: [PATCH] dump callstack on Surface use error Change-Id: I38e260dd47349b9af3a999dda683a083a94be16d --- include/utils/CallStack.h | 2 +- libs/surfaceflinger_client/Surface.cpp | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/utils/CallStack.h b/include/utils/CallStack.h index c2c8ce514..8817120ef 100644 --- a/include/utils/CallStack.h +++ b/include/utils/CallStack.h @@ -50,7 +50,7 @@ public: void clear(); - void update(int32_t ignoreDepth=0, int32_t maxDepth=MAX_DEPTH); + void update(int32_t ignoreDepth=1, int32_t maxDepth=MAX_DEPTH); // Dump a stack trace to the log void dump(const char* prefix = 0) const; diff --git a/libs/surfaceflinger_client/Surface.cpp b/libs/surfaceflinger_client/Surface.cpp index 9467a4cf0..6d82b5d9a 100644 --- a/libs/surfaceflinger_client/Surface.cpp +++ b/libs/surfaceflinger_client/Surface.cpp @@ -489,6 +489,9 @@ status_t Surface::validate() const LOGE("[Surface] using an invalid surface, " "identity=%u should be %d", mIdentity, identity); + CallStack stack; + stack.update(); + stack.dump("Surface"); return NO_INIT; } @@ -497,6 +500,9 @@ status_t Surface::validate() const if (err != NO_ERROR) { LOGE("surface (identity=%u) is invalid, err=%d (%s)", mIdentity, err, strerror(-err)); + CallStack stack; + stack.update(); + stack.dump("Surface"); return err; }