Changeset 69011 in vbox
- Timestamp:
- Oct 9, 2017 11:52:45 AM (7 years ago)
- Location:
- trunk
- Files:
-
- 3 edited
- 1 copied
-
include/iprt/err.h (modified) (1 diff)
-
include/iprt/mangling.h (modified) (1 diff)
-
src/VBox/Runtime/Makefile.kmk (modified) (2 diffs)
-
src/VBox/Runtime/common/err/errinfolog.cpp (copied) (copied from trunk/src/VBox/Runtime/common/err/errinfo.cpp ) (8 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/iprt/err.h
r68920 r69011 554 554 */ 555 555 RTDECL(int) RTErrInfoAddV(PRTERRINFO pErrInfo, int rc, const char *pszFormat, va_list va) RT_IPRT_FORMAT_ATTR(3, 0); 556 557 /** @name RTERRINFO_LOG_F_XXX 558 * @{ */ 559 /** Both debug and release log. */ 560 #define RTERRINFO_LOG_F_RELEASE RT_BIT_32(0) 561 /** @} */ 562 563 /** 564 * Fills in the error info details. 565 * 566 * @returns @a rc. 567 * 568 * @param pErrInfo The error info structure to fill in. 569 * @param rc The status code to return. 570 * @param iLogGroup The logging group. 571 * @param fFlags RTERRINFO_LOG_F_XXX. 572 * @param pszMsg The error message string. 573 */ 574 RTDECL(int) RTErrInfoLogAndSet(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszMsg); 575 576 /** 577 * Fills in the error info details, with a sprintf style message. 578 * 579 * @returns @a rc. 580 * 581 * @param pErrInfo The error info structure to fill in. 582 * @param rc The status code to return. 583 * @param iLogGroup The logging group. 584 * @param fFlags RTERRINFO_LOG_F_XXX. 585 * @param pszFormat The format string. 586 * @param ... The format arguments. 587 */ 588 RTDECL(int) RTErrInfoLogAndSetF(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszFormat, ...) RT_IPRT_FORMAT_ATTR(5, 6); 589 590 /** 591 * Fills in the error info details, with a vsprintf style message. 592 * 593 * @returns @a rc. 594 * 595 * @param pErrInfo The error info structure to fill in. 596 * @param rc The status code to return. 597 * @param iLogGroup The logging group. 598 * @param fFlags RTERRINFO_LOG_F_XXX. 599 * @param pszFormat The format string. 600 * @param va The format arguments. 601 */ 602 RTDECL(int) RTErrInfoLogAndSetV(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszFormat, va_list va) RT_IPRT_FORMAT_ATTR(5, 0); 603 604 /** 605 * Adds more error info details. 606 * 607 * @returns @a rc. 608 * 609 * @param pErrInfo The error info structure to fill in. 610 * @param rc The status code to return. 611 * @param iLogGroup The logging group. 612 * @param fFlags RTERRINFO_LOG_F_XXX. 613 * @param pszMsg The error message string to add. 614 */ 615 RTDECL(int) RTErrInfoLogAndAdd(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszMsg); 616 617 /** 618 * Adds more error info details, with a sprintf style message. 619 * 620 * @returns @a rc. 621 * 622 * @param pErrInfo The error info structure to fill in. 623 * @param rc The status code to return. 624 * @param iLogGroup The logging group. 625 * @param fFlags RTERRINFO_LOG_F_XXX. 626 * @param pszFormat The format string to add. 627 * @param ... The format arguments. 628 */ 629 RTDECL(int) RTErrInfoLogAndAddF(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszFormat, ...) RT_IPRT_FORMAT_ATTR(5, 6); 630 631 /** 632 * Adds more error info details, with a vsprintf style message. 633 * 634 * @returns @a rc. 635 * 636 * @param pErrInfo The error info structure to fill in. 637 * @param rc The status code to return. 638 * @param iLogGroup The logging group. 639 * @param fFlags RTERRINFO_LOG_F_XXX. 640 * @param pszFormat The format string to add. 641 * @param va The format arguments. 642 */ 643 RTDECL(int) RTErrInfoLogAndAddV(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszFormat, va_list va) RT_IPRT_FORMAT_ATTR(5, 0); 644 645 /** @name Macros wrapping the RTErrInfoLog* functions. 646 * @{ */ 647 #define RTERRINFO_LOG_SET( a_pErrInfo, a_rc, a_pszMsg) RTErrInfoLogAndSet( a_pErrInfo, a_rc, LOG_GROUP, 0, a_pszMsg) 648 #define RTERRINFO_LOG_SET_V(a_pErrInfo, a_rc, a_pszMsg, a_va) RTErrInfoLogAndSetV(a_pErrInfo, a_rc, LOG_GROUP, 0, a_pszMsg, a_va) 649 #define RTERRINFO_LOG_ADD( a_pErrInfo, a_rc, a_pszMsg) RTErrInfoLogAndAdd( a_pErrInfo, a_rc, LOG_GROUP, 0, a_pszMsg) 650 #define RTERRINFO_LOG_ADD_V(a_pErrInfo, a_rc, a_pszMsg, a_va) RTErrInfoLogAndAddV(a_pErrInfo, a_rc, LOG_GROUP, 0, a_pszMsg, a_va) 651 #ifdef RT_COMPILER_SUPPORTS_VA_ARGS 652 # define RTERRINFO_LOG_ADD_F(a_pErrInfo, a_rc, ...) RTErrInfoLogAndAddF(a_pErrInfo, a_rc, LOG_GROUP, 0, __VA_ARGS__) 653 # define RTERRINFO_LOG_SET_F(a_pErrInfo, a_rc, ...) RTErrInfoLogAndSetF(a_pErrInfo, a_rc, LOG_GROUP, 0, __VA_ARGS__) 654 #endif 655 656 #define RTERRINFO_LOG_REL_SET( a_pErrInfo, a_rc, a_pszMsg) RTErrInfoLogAndSet( a_pErrInfo, a_rc, LOG_GROUP, RTERRINFO_LOG_F_RELEASE, a_pszMsg) 657 #define RTERRINFO_LOG_REL_SET_V(a_pErrInfo, a_rc, a_pszMsg, a_va) RTErrInfoLogAndSetV(a_pErrInfo, a_rc, LOG_GROUP, RTERRINFO_LOG_F_RELEASE, a_pszMsg, a_va) 658 #define RTERRINFO_LOG_REL_ADD( a_pErrInfo, a_rc, a_pszMsg) RTErrInfoLogAndAdd( a_pErrInfo, a_rc, LOG_GROUP, RTERRINFO_LOG_F_RELEASE, a_pszMsg) 659 #define RTERRINFO_LOG_REL_ADD_V(a_pErrInfo, a_rc, a_pszMsg, a_va) RTErrInfoLogAndAddV(a_pErrInfo, a_rc, LOG_GROUP, RTERRINFO_LOG_F_RELEASE, a_pszMsg, a_va) 660 #ifdef RT_COMPILER_SUPPORTS_VA_ARGS 661 # define RTERRINFO_LOG_REL_ADD_F(a_pErrInfo, a_rc, ...) RTErrInfoLogAndAddF(a_pErrInfo, a_rc, LOG_GROUP, RTERRINFO_LOG_F_RELEASE, __VA_ARGS__) 662 # define RTERRINFO_LOG_REL_SET_F(a_pErrInfo, a_rc, ...) RTErrInfoLogAndSetF(a_pErrInfo, a_rc, LOG_GROUP, RTERRINFO_LOG_F_RELEASE, __VA_ARGS__) 663 #else 664 # define RTERRINFO_LOG_REL_ADD_F RTErrInfoSetF 665 # define RTERRINFO_LOG_REL_SET_F RTErrInfoAddF 666 #endif 667 /** @} */ 668 556 669 557 670 /** -
trunk/include/iprt/mangling.h
r68884 r69011 839 839 # define RTErrInfoSetF RT_MANGLER(RTErrInfoSetF) 840 840 # define RTErrInfoSetV RT_MANGLER(RTErrInfoSetV) 841 # define RTErrInfoLogAndSet RT_MANGLER(RTErrInfoLogAndSet) 842 # define RTErrInfoLogAndSetF RT_MANGLER(RTErrInfoLogAndSetF) 843 # define RTErrInfoLogAndSetV RT_MANGLER(RTErrInfoLogAndSetV) 844 # define RTErrInfoLogAndAdd RT_MANGLER(RTErrInfoLogAndAdd) 845 # define RTErrInfoLogAndAddF RT_MANGLER(RTErrInfoLogAndAddF) 846 # define RTErrInfoLogAndAddV RT_MANGLER(RTErrInfoLogAndAddV) 841 847 # define RTErrVarsAreEqual RT_MANGLER(RTErrVarsAreEqual) 842 848 # define RTErrVarsHaveChanged RT_MANGLER(RTErrVarsHaveChanged) -
trunk/src/VBox/Runtime/Makefile.kmk
r68995 r69011 424 424 common/dvm/dvmvfs.cpp \ 425 425 common/err/errinfo.cpp \ 426 common/err/errinfolog.cpp \ 426 427 common/err/errinfo-alloc.cpp \ 427 428 common/err/errmsg.cpp \ … … 2329 2330 common/checksum/sha512t256str.cpp \ 2330 2331 common/err/errinfo.cpp \ 2332 common/err/errinfolog.cpp \ 2331 2333 common/path/RTPathChangeToUnixSlashes.cpp \ 2332 2334 common/math/bignum.cpp \ -
trunk/src/VBox/Runtime/common/err/errinfolog.cpp
r68980 r69011 34 34 #include <iprt/assert.h> 35 35 #include <iprt/string.h> 36 #include <iprt/log.h> 36 37 37 38 38 RTDECL(int) RTErrInfo Set(PRTERRINFO pErrInfo, int rc, const char *pszMsg)39 RTDECL(int) RTErrInfoLogAndSet(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszMsg) 39 40 { 41 /* The logging: */ 42 if (fFlags & RTERRINFO_LOG_F_RELEASE) 43 { 44 PRTLOGGER pLogger = RTLogRelGetDefaultInstanceEx(RT_MAKE_U32(RTLOGGRPFLAGS_LEVEL_1, iLogGroup)); 45 if (pLogger) 46 RTLogLoggerEx(pLogger, RTLOGGRPFLAGS_LEVEL_1, iLogGroup, "RTErrInfoSet(%Rrc): %s\n", rc, pszMsg); 47 } 48 49 PRTLOGGER pLogger = RTLogGetDefaultInstanceEx(RT_MAKE_U32(RTLOGGRPFLAGS_LEVEL_1, iLogGroup)); 50 if (pLogger) 51 RTLogLoggerEx(pLogger, RTLOGGRPFLAGS_LEVEL_1, iLogGroup, "RTErrInfoSet(%Rrc): %s\n", rc, pszMsg); 52 53 /* The setting: */ 40 54 if (pErrInfo) 41 55 { … … 51 65 52 66 53 RTDECL(int) RTErrInfo SetF(PRTERRINFO pErrInfo, int rc, const char *pszFormat, ...)67 RTDECL(int) RTErrInfoLogAndSetF(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszFormat, ...) 54 68 { 55 69 va_list va; 56 70 va_start(va, pszFormat); 57 RTErrInfo SetV(pErrInfo, rc, pszFormat, va);71 RTErrInfoLogAndSetV(pErrInfo, rc, iLogGroup, fFlags, pszFormat, va); 58 72 va_end(va); 59 73 return rc; … … 61 75 62 76 63 RTDECL(int) RTErrInfo SetV(PRTERRINFO pErrInfo, int rc, const char *pszFormat, va_list va)77 RTDECL(int) RTErrInfoLogAndSetV(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszFormat, va_list va) 64 78 { 79 /* The logging: */ 80 if (fFlags & RTERRINFO_LOG_F_RELEASE) 81 { 82 PRTLOGGER pLogger = RTLogRelGetDefaultInstanceEx(RT_MAKE_U32(RTLOGGRPFLAGS_LEVEL_1, iLogGroup)); 83 if (pLogger) 84 RTLogLoggerEx(pLogger, RTLOGGRPFLAGS_LEVEL_1, iLogGroup, "RTErrInfoSet(%Rrc): %N\n", rc, pszFormat, &va); 85 } 86 87 PRTLOGGER pLogger = RTLogGetDefaultInstanceEx(RT_MAKE_U32(RTLOGGRPFLAGS_LEVEL_1, iLogGroup)); 88 if (pLogger) 89 RTLogLoggerEx(pLogger, RTLOGGRPFLAGS_LEVEL_1, iLogGroup, "RTErrInfoSet(%Rrc): %N\n", rc, pszFormat, &va); 90 91 /* The setting: */ 65 92 if (pErrInfo) 66 93 { … … 76 103 77 104 78 RTDECL(int) RTErrInfo Add(PRTERRINFO pErrInfo, int rc, const char *pszMsg)105 RTDECL(int) RTErrInfoLogAndAdd(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszMsg) 79 106 { 80 107 if (pErrInfo) … … 90 117 } 91 118 } 119 120 /* The logging: */ 121 if (fFlags & RTERRINFO_LOG_F_RELEASE) 122 { 123 PRTLOGGER pLogger = RTLogRelGetDefaultInstanceEx(RT_MAKE_U32(RTLOGGRPFLAGS_LEVEL_1, iLogGroup)); 124 if (pLogger) 125 RTLogLoggerEx(pLogger, RTLOGGRPFLAGS_LEVEL_1, iLogGroup, "RTErrInfoAdd(%Rrc): %s\n", rc, pszMsg); 126 } 127 128 PRTLOGGER pLogger = RTLogGetDefaultInstanceEx(RT_MAKE_U32(RTLOGGRPFLAGS_LEVEL_1, iLogGroup)); 129 if (pLogger) 130 RTLogLoggerEx(pLogger, RTLOGGRPFLAGS_LEVEL_1, iLogGroup, "RTErrInfoAdd(%Rrc): %s\n", rc, pszMsg); 131 92 132 return rc; 93 133 } 94 134 95 135 96 RTDECL(int) RTErrInfo AddF(PRTERRINFO pErrInfo, int rc, const char *pszFormat, ...)136 RTDECL(int) RTErrInfoLogAndAddF(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszFormat, ...) 97 137 { 98 138 va_list va; 99 139 va_start(va, pszFormat); 100 RTErrInfo AddV(pErrInfo, rc, pszFormat, va);140 RTErrInfoLogAndAddV(pErrInfo, rc, iLogGroup, fFlags, pszFormat, va); 101 141 va_end(va); 102 142 return rc; … … 104 144 105 145 106 RTDECL(int) RTErrInfo AddV(PRTERRINFO pErrInfo, int rc, const char *pszFormat, va_list va)146 RTDECL(int) RTErrInfoLogAndAddV(PRTERRINFO pErrInfo, int rc, uint32_t iLogGroup, uint32_t fFlags, const char *pszFormat, va_list va) 107 147 { 108 148 if (pErrInfo) … … 114 154 char *pszOut = (char *)memchr(pErrInfo->pszMsg, '\0', pErrInfo->cbMsg - 2); 115 155 if (pszOut) 116 RTStrPrintfV(pszOut, &pErrInfo->pszMsg[pErrInfo->cbMsg] - pszOut, pszFormat, va); 156 { 157 va_list va2; 158 va_copy(va2, va); 159 RTStrPrintfV(pszOut, &pErrInfo->pszMsg[pErrInfo->cbMsg] - pszOut, pszFormat, va2); 160 va_end(va2); 161 } 117 162 } 118 163 else … … 123 168 } 124 169 } 170 171 /* The logging: */ 172 if (fFlags & RTERRINFO_LOG_F_RELEASE) 173 { 174 PRTLOGGER pLogger = RTLogRelGetDefaultInstanceEx(RT_MAKE_U32(RTLOGGRPFLAGS_LEVEL_1, iLogGroup)); 175 if (pLogger) 176 RTLogLoggerEx(pLogger, RTLOGGRPFLAGS_LEVEL_1, iLogGroup, "RTErrInfoAdd(%Rrc): %N\n", rc, pszFormat, &va); 177 } 178 179 PRTLOGGER pLogger = RTLogGetDefaultInstanceEx(RT_MAKE_U32(RTLOGGRPFLAGS_LEVEL_1, iLogGroup)); 180 if (pLogger) 181 RTLogLoggerEx(pLogger, RTLOGGRPFLAGS_LEVEL_1, iLogGroup, "RTErrInfoAdd(%Rrc): %N\n", rc, pszFormat, &va); 182 125 183 return rc; 126 184 }
Note:
See TracChangeset
for help on using the changeset viewer.

