Add basic Camera2Client dump, minor fixes to CameraService dump.
Bug: 6243944
Change-Id: I52caaa6146050c38976768e99b0eeea1d13a3f51
diff --git a/services/camera/libcameraservice/Camera2Client.cpp b/services/camera/libcameraservice/Camera2Client.cpp
index e138cd1..d0a84a5 100644
--- a/services/camera/libcameraservice/Camera2Client.cpp
+++ b/services/camera/libcameraservice/Camera2Client.cpp
@@ -103,7 +103,13 @@
}
status_t Camera2Client::dump(int fd, const Vector<String16>& args) {
- return BAD_VALUE;
+ String8 result;
+ result.appendFormat("Client2[%d] (%p) PID: %d:\n",
+ mCameraId,
+ getCameraClient()->asBinder().get(),
+ mClientPid);
+ write(fd, result.string(), result.size());
+ return NO_ERROR;
}
// ICamera interface
diff --git a/services/camera/libcameraservice/CameraService.cpp b/services/camera/libcameraservice/CameraService.cpp
index d01fcf9..912ee4a 100644
--- a/services/camera/libcameraservice/CameraService.cpp
+++ b/services/camera/libcameraservice/CameraService.cpp
@@ -417,24 +417,18 @@
}
status_t CameraService::dump(int fd, const Vector<String16>& args) {
- static const char* kDeadlockedString = "CameraService may be deadlocked\n";
-
- const size_t SIZE = 256;
- char buffer[SIZE];
String8 result;
if (checkCallingPermission(String16("android.permission.DUMP")) == false) {
- snprintf(buffer, SIZE, "Permission Denial: "
+ result.appendFormat("Permission Denial: "
"can't dump CameraService from pid=%d, uid=%d\n",
getCallingPid(),
getCallingUid());
- result.append(buffer);
write(fd, result.string(), result.size());
} else {
bool locked = tryLock(mServiceLock);
// failed to lock - CameraService is probably deadlocked
if (!locked) {
- String8 result(kDeadlockedString);
- write(fd, result.string(), result.size());
+ result.append("CameraService may be deadlocked\n");
}
bool hasClient = false;
@@ -445,8 +439,7 @@
client->dump(fd, args);
}
if (!hasClient) {
- result.append("No camera client yet.\n");
- write(fd, result.string(), result.size());
+ result.append("No camera clients yet.\n");
}
if (locked) mServiceLock.unlock();
@@ -454,14 +447,15 @@
// change logging level
int n = args.size();
for (int i = 0; i + 1 < n; i++) {
- if (args[i] == String16("-v")) {
+ String16 verboseOption("-v");
+ if (args[i] == verboseOption) {
String8 levelStr(args[i+1]);
int level = atoi(levelStr.string());
- sprintf(buffer, "Set Log Level to %d", level);
- result.append(buffer);
+ result.appendFormat("Setting log level to %d.\n", level);
setLogLevel(level);
}
}
+ write(fd, result.string(), result.size());
}
return NO_ERROR;
}