diff options
author | Steven Moreland <smoreland@google.com> | 2022-06-10 17:24:25 +0000 |
---|---|---|
committer | Steven Moreland <smoreland@google.com> | 2022-06-10 17:29:35 +0000 |
commit | 009fc1a7cfbb4ccc4fa3c3f928149116a6201a5b (patch) | |
tree | 59e62ffe2445f84dfecb65b029a3ae7139a8aaf2 | |
parent | 7514e3b91a168996e006b3b69e2e6c51ef50a345 (diff) | |
download | native-009fc1a7cfbb4ccc4fa3c3f928149116a6201a5b.tar.gz |
libbinder_ndk: ibinder.cpp explicit errors
You know when you're writing an error message and you're like
ughhhhhh so much work for a couple extra chars that probably won't
matter, and we can make the error useful when it's needed. Well,
this is that time! and it's needed now! :) Should write good
error messages from the start! :D
Bug: 235338094
Test: atest CtsNdkBinderTestCases
Change-Id: I85d0eba25a5cdb8341615d6fe3ac9c7e38fc28ca
-rw-r--r-- | libs/binder/ndk/ibinder.cpp | 23 |
1 files changed, 16 insertions, 7 deletions
diff --git a/libs/binder/ndk/ibinder.cpp b/libs/binder/ndk/ibinder.cpp index 28e3ff43ff..b21a7e9584 100644 --- a/libs/binder/ndk/ibinder.cpp +++ b/libs/binder/ndk/ibinder.cpp @@ -36,6 +36,7 @@ using ::android::IResultReceiver; using ::android::Parcel; using ::android::sp; using ::android::status_t; +using ::android::statusToString; using ::android::String16; using ::android::String8; using ::android::wp; @@ -133,7 +134,8 @@ bool AIBinder::associateClass(const AIBinder_Class* clazz) { } else { // b/155793159 LOG(ERROR) << __func__ << ": Cannot associate class '" << newDescriptor - << "' to dead binder."; + << "' to dead binder with cached descriptor '" << SanitizeString(descriptor) + << "'."; } return false; } @@ -458,7 +460,8 @@ binder_status_t AIBinder_DeathRecipient::unlinkToDeath(const sp<IBinder>& binder status_t status = binder->unlinkToDeath(recipient, cookie, 0 /*flags*/); if (status != ::android::OK) { LOG(ERROR) << __func__ - << ": removed reference to death recipient but unlink failed."; + << ": removed reference to death recipient but unlink failed: " + << statusToString(status); } return PruneStatusT(status); } @@ -539,7 +542,8 @@ binder_status_t AIBinder_dump(AIBinder* binder, int fd, const char** args, uint3 binder_status_t AIBinder_linkToDeath(AIBinder* binder, AIBinder_DeathRecipient* recipient, void* cookie) { if (binder == nullptr || recipient == nullptr) { - LOG(ERROR) << __func__ << ": Must provide binder and recipient."; + LOG(ERROR) << __func__ << ": Must provide binder (" << binder << ") and recipient (" + << recipient << ")"; return STATUS_UNEXPECTED_NULL; } @@ -550,7 +554,8 @@ binder_status_t AIBinder_linkToDeath(AIBinder* binder, AIBinder_DeathRecipient* binder_status_t AIBinder_unlinkToDeath(AIBinder* binder, AIBinder_DeathRecipient* recipient, void* cookie) { if (binder == nullptr || recipient == nullptr) { - LOG(ERROR) << __func__ << ": Must provide binder and recipient."; + LOG(ERROR) << __func__ << ": Must provide binder (" << binder << ") and recipient (" + << recipient << ")"; return STATUS_UNEXPECTED_NULL; } @@ -625,7 +630,8 @@ void* AIBinder_getUserData(AIBinder* binder) { binder_status_t AIBinder_prepareTransaction(AIBinder* binder, AParcel** in) { if (binder == nullptr || in == nullptr) { - LOG(ERROR) << __func__ << ": requires non-null parameters."; + LOG(ERROR) << __func__ << ": requires non-null parameters binder (" << binder + << ") and in (" << in << ")."; return STATUS_UNEXPECTED_NULL; } const AIBinder_Class* clazz = binder->getClass(); @@ -671,7 +677,9 @@ binder_status_t AIBinder_transact(AIBinder* binder, transaction_code_t code, APa AutoParcelDestroyer forIn(in, DestroyParcel); if (!isUserCommand(code)) { - LOG(ERROR) << __func__ << ": Only user-defined transactions can be made from the NDK."; + LOG(ERROR) << __func__ + << ": Only user-defined transactions can be made from the NDK, but requested: " + << code; return STATUS_UNKNOWN_TRANSACTION; } @@ -682,7 +690,8 @@ binder_status_t AIBinder_transact(AIBinder* binder, transaction_code_t code, APa } if (binder == nullptr || *in == nullptr || out == nullptr) { - LOG(ERROR) << __func__ << ": requires non-null parameters."; + LOG(ERROR) << __func__ << ": requires non-null parameters binder (" << binder << "), in (" + << in << "), and out (" << out << ")."; return STATUS_UNEXPECTED_NULL; } |