VirtualBox

Changeset 59049 in vbox


Ignore:
Timestamp:
Dec 8, 2015 10:50:26 AM (9 years ago)
Author:
vboxsync
Message:

HBDMgmt-darwin.cpp: Log more details about the error if available

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Storage/HBDMgmt-darwin.cpp

    r58973 r59049  
    9595    /** The status code returned by the callback, after the operation completed. */
    9696    DAReturn           rcDA;
     97    /** A detailed error string in case of an error, can be NULL.
     98     * Must be freed with RTStrFree(). */
     99    char              *pszErrDetail;
    97100} HBDMGRDACLBKARGS;
    98101typedef HBDMGRDACLBKARGS *PHBDMGRDACLBKARGS;
     
    207210{
    208211    PHBDMGRDACLBKARGS pArgs = (PHBDMGRDACLBKARGS)pvContext;
     212    pArgs->pszErrDetail = NULL;
     213
    209214    if (!hDissenterRef)
    210215        pArgs->rcDA = kDAReturnSuccess;
    211216    else
     217    {
     218        CFStringRef hStrErr = DADissenterGetStatusString(hDissenterRef);
     219        if (hStrErr)
     220        {
     221            const char *pszErrDetail = CFStringGetCStringPtr(hStrErr, kCFStringEncodingUTF8);
     222            if (pszErrDetail)
     223                pArgs->pszErrDetail = RTStrDup(pszErrDetail);
     224            CFRelease(hStrErr);
     225        }
    212226        pArgs->rcDA = DADissenterGetStatus(hDissenterRef);
     227
     228    }
    213229    RTSemEventSignal(pArgs->pThis->hEvtCallback);
    214230}
     
    453469                {
    454470                    rc = hbdMgrDAReturn2VBoxStatus(CalllbackArgs.rcDA);
    455                     LogRel(("HBDMgrClaimBlockDevice: DADiskUnmount(\"%s\") failed with %Rrc\n",
    456                             pszFilename, rc));
     471                    LogRel(("HBDMgrClaimBlockDevice: DADiskUnmount(\"%s\") failed with %Rrc (%s)\n",
     472                            pszFilename, rc, CalllbackArgs.pszErrDetail ? CalllbackArgs.pszErrDetail : "<no detail>"));
     473                    if (CalllbackArgs.pszErrDetail)
     474                        RTStrFree(CalllbackArgs.pszErrDetail);
    457475                }
    458476            }
     
    460478            {
    461479                rc = hbdMgrDAReturn2VBoxStatus(CalllbackArgs.rcDA);
    462                 LogRel(("HBDMgrClaimBlockDevice: DADiskClaim(\"%s\") failed with %Rrc\n",
    463                         pszFilename, rc));
     480                LogRel(("HBDMgrClaimBlockDevice: DADiskClaim(\"%s\") failed with %Rrc (%s)\n",
     481                        pszFilename, rc, CalllbackArgs.pszErrDetail ? CalllbackArgs.pszErrDetail : "<no detail>"));
     482                if (CalllbackArgs.pszErrDetail)
     483                    RTStrFree(CalllbackArgs.pszErrDetail);
    464484            }
    465485            if (RT_FAILURE(rc))
Note: See TracChangeset for help on using the changeset viewer.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette