summaryrefslogtreecommitdiffstats
path: root/debuggerd
diff options
context:
space:
mode:
authorJosh Gao <jmgao@google.com>2018-09-06 13:00:57 -0700
committerJosh Gao <jmgao@google.com>2018-09-06 13:00:57 -0700
commitbe0c1af6f03a9a73a7657f0f572d385bd4dadd05 (patch)
treefb7881f646c089baf23a4bd188ea6fddd3ecff93 /debuggerd
parentebb631b0a32556cdeda70d3bf9e6f6460667b42f (diff)
downloadsystem_core-be0c1af6f03a9a73a7657f0f572d385bd4dadd05.tar.gz
system_core-be0c1af6f03a9a73a7657f0f572d385bd4dadd05.tar.bz2
system_core-be0c1af6f03a9a73a7657f0f572d385bd4dadd05.zip
debuggerd_client: improve error logging.
system_server is sometimes failing to dump with the following error: libdebuggerd_client: received packet of unexpected length from tombstoned: expected 128, received -1 Improve the logging to try to figure out what's going on. Bug: http://b/114139908 Test: treehugger Change-Id: Iee1bdc0891b9fc7bd80a330495ec22a530febddb
Diffstat (limited to 'debuggerd')
-rw-r--r--debuggerd/client/debuggerd_client.cpp24
1 files changed, 16 insertions, 8 deletions
diff --git a/debuggerd/client/debuggerd_client.cpp b/debuggerd/client/debuggerd_client.cpp
index cb7cbbe0f..77f3515a4 100644
--- a/debuggerd/client/debuggerd_client.cpp
+++ b/debuggerd/client/debuggerd_client.cpp
@@ -143,12 +143,16 @@ bool debuggerd_trigger_dump(pid_t pid, DebuggerdDumpType dump_type, unsigned int
ssize_t rc =
TEMP_FAILURE_RETRY(recv(set_timeout(sockfd.get()), &response, sizeof(response), MSG_TRUNC));
if (rc == 0) {
- LOG(ERROR) << "libdebuggerd_client: failed to read response from tombstoned: timeout reached?";
+ LOG(ERROR) << "libdebuggerd_client: failed to read initial response from tombstoned: "
+ << "timeout reached?";
+ return false;
+ } else if (rc == -1) {
+ PLOG(ERROR) << "libdebuggerd_client: failed to read initial response from tombstoned";
return false;
} else if (rc != sizeof(response)) {
- LOG(ERROR)
- << "libdebuggerd_client: received packet of unexpected length from tombstoned: expected "
- << sizeof(response) << ", received " << rc;
+ LOG(ERROR) << "libdebuggerd_client: received packet of unexpected length from tombstoned while "
+ "reading initial response: expected "
+ << sizeof(response) << ", received " << rc;
return false;
}
@@ -164,12 +168,16 @@ bool debuggerd_trigger_dump(pid_t pid, DebuggerdDumpType dump_type, unsigned int
rc = TEMP_FAILURE_RETRY(recv(set_timeout(sockfd.get()), &response, sizeof(response), MSG_TRUNC));
if (rc == 0) {
- LOG(ERROR) << "libdebuggerd_client: failed to read response from tombstoned: timeout reached?";
+ LOG(ERROR) << "libdebuggerd_client: failed to read status response from tombstoned: "
+ "timeout reached?";
+ return false;
+ } else if (rc == -1) {
+ PLOG(ERROR) << "libdebuggerd_client: failed to read status response from tombstoned";
return false;
} else if (rc != sizeof(response)) {
- LOG(ERROR)
- << "libdebuggerd_client: received packet of unexpected length from tombstoned: expected "
- << sizeof(response) << ", received " << rc;
+ LOG(ERROR) << "libdebuggerd_client: received packet of unexpected length from tombstoned while "
+ "reading confirmation response: expected "
+ << sizeof(response) << ", received " << rc;
return false;
}