diff options
Diffstat (limited to 'libs/binder/IPCThreadState.cpp')
| -rw-r--r-- | libs/binder/IPCThreadState.cpp | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/libs/binder/IPCThreadState.cpp b/libs/binder/IPCThreadState.cpp index d4c7acfdfd..7d01e0b1c3 100644 --- a/libs/binder/IPCThreadState.cpp +++ b/libs/binder/IPCThreadState.cpp @@ -1248,10 +1248,22 @@ status_t IPCThreadState::executeCommand(int32_t cmd) constexpr uint32_t kForwardReplyFlags = TF_CLEAR_BUF; sendReply(reply, (tr.flags & kForwardReplyFlags)); } else { - if (error != OK || reply.dataSize() != 0) { - alog << "oneway function results will be dropped but finished with status " - << statusToString(error) - << " and parcel size " << reply.dataSize() << endl; + if (error != OK) { + alog << "oneway function results for code " << tr.code + << " on binder at " + << reinterpret_cast<void*>(tr.target.ptr) + << " will be dropped but finished with status " + << statusToString(error); + + // ideally we could log this even when error == OK, but it + // causes too much logspam because some manually-written + // interfaces have clients that call methods which always + // write results, sometimes as oneway methods. + if (reply.dataSize() != 0) { + alog << " and reply parcel size " << reply.dataSize(); + } + + alog << endl; } LOG_ONEWAY("NOT sending reply to %d!", mCallingPid); } |