summaryrefslogtreecommitdiffstats
path: root/services/camera/libcameraservice/device3
diff options
context:
space:
mode:
authorIgor Murashkin <iam@google.com>2013-10-23 16:40:06 -0700
committerIgor Murashkin <iam@google.com>2013-10-29 11:49:05 -0700
commitff3e31d2b100d8efd969b358b18e4405c49dd10d (patch)
tree6d3bcd6772305f06fcf85c498365c8c198a7fbc9 /services/camera/libcameraservice/device3
parent95c03858e2ab4fb693a2bfe47b3caa806e43c044 (diff)
downloadframeworks_av-ff3e31d2b100d8efd969b358b18e4405c49dd10d.zip
frameworks_av-ff3e31d2b100d8efd969b358b18e4405c49dd10d.tar.gz
frameworks_av-ff3e31d2b100d8efd969b358b18e4405c49dd10d.tar.bz2
camera: Collect stack traces when bad things happen, print with dumpsys
Bug: 11324229 Change-Id: Ic920e170a8f5a389fc139bbf5416c0e3186c7fb6
Diffstat (limited to 'services/camera/libcameraservice/device3')
-rw-r--r--services/camera/libcameraservice/device3/Camera3Device.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/services/camera/libcameraservice/device3/Camera3Device.cpp b/services/camera/libcameraservice/device3/Camera3Device.cpp
index 6f2dc85..c320d6c 100644
--- a/services/camera/libcameraservice/device3/Camera3Device.cpp
+++ b/services/camera/libcameraservice/device3/Camera3Device.cpp
@@ -41,6 +41,7 @@
#include <utils/Trace.h>
#include <utils/Timers.h>
+#include "utils/CameraTraces.h"
#include "device3/Camera3Device.h"
#include "device3/Camera3OutputStream.h"
#include "device3/Camera3InputStream.h"
@@ -1363,6 +1364,10 @@ void Camera3Device::setErrorStateLockedV(const char *fmt, va_list args) {
// But only do error state transition steps for the first error
if (mStatus == STATUS_ERROR || mStatus == STATUS_UNINITIALIZED) return;
+ // Save stack trace. View by dumping it later.
+ CameraTraces::saveTrace();
+ // TODO: consider adding errorCause and client pid/procname
+
mErrorCause = errorCause;
mRequestThread->setPaused(true);