Changeset 25528 in vbox for trunk/src/VBox/Runtime/r0drv/linux
- Timestamp:
- Dec 20, 2009 11:24:59 PM (15 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Runtime/r0drv/linux/assert-r0drv-linux.c
r21337 r25528 42 42 #include <iprt/asm.h> 43 43 44 45 /******************************************************************************* 46 * Global Variables * 47 *******************************************************************************/ 48 /** The last assert message, 1st part. */ 49 RTDATADECL(char) g_szRTAssertMsg1[1024]; 50 RT_EXPORT_SYMBOL(g_szRTAssertMsg1); 51 /** The last assert message, 2nd part. */ 52 RTDATADECL(char) g_szRTAssertMsg2[2048]; 53 RT_EXPORT_SYMBOL(g_szRTAssertMsg2); 54 /** The last assert message, file name. */ 55 RTDATADECL(const char *) volatile g_pszRTAssertExpr; 56 RT_EXPORT_SYMBOL(g_pszRTAssertExpr); 57 /** The last assert message, file name. */ 58 RTDATADECL(const char *) volatile g_pszRTAssertFile; 59 RT_EXPORT_SYMBOL(g_pszRTAssertFile); 60 /** The last assert message, line number. */ 61 RTDATADECL(uint32_t) volatile g_u32RTAssertLine; 62 RT_EXPORT_SYMBOL(g_u32RTAssertLine); 63 /** The last assert message, function name. */ 64 RTDATADECL(const char *) volatile g_pszRTAssertFunction; 65 RT_EXPORT_SYMBOL(g_pszRTAssertFunction); 44 #include "internal/assert.h" 66 45 67 46 68 RTDECL(void) AssertMsg1(const char *pszExpr, unsigned uLine, const char *pszFile, const char *pszFunction)47 void rtR0AssertNativeMsg1(const char *pszExpr, unsigned uLine, const char *pszFile, const char *pszFunction) 69 48 { 70 #ifdef IN_GUEST_R071 RTLogBackdoorPrintf("\n!!Assertion Failed!!\n"72 "Expression: %s\n"73 "Location : %s(%d) %s\n",74 pszExpr, pszFile, uLine, pszFunction);75 #endif76 77 49 printk("\r\n!!Assertion Failed!!\r\n" 78 50 "Expression: %s\r\n" 79 51 "Location : %s(%d) %s\r\n", 80 52 pszExpr, pszFile, uLine, pszFunction); 81 82 RTStrPrintf(g_szRTAssertMsg1, sizeof(g_szRTAssertMsg1),83 "\n!!Assertion Failed!!\n"84 "Expression: %s\n"85 "Location : %s(%d) %s\n",86 pszExpr, pszFile, uLine, pszFunction);87 ASMAtomicUoWritePtr((void * volatile *)&g_pszRTAssertExpr, pszExpr);88 ASMAtomicUoWritePtr((void * volatile *)&g_pszRTAssertFile, pszFile);89 ASMAtomicUoWritePtr((void * volatile *)&g_pszRTAssertFunction, pszFunction);90 ASMAtomicUoWriteU32(&g_u32RTAssertLine, uLine);91 53 } 92 RT_EXPORT_SYMBOL(AssertMsg1);93 54 94 55 95 RTDECL(void) AssertMsg2(const char *pszFormat, ...)56 void rtR0AssertNativeMsg2V(const char *pszFormat, va_list va) 96 57 { 97 va_list va; 98 char szMsg[256]; 99 100 #ifdef IN_GUEST_R0 101 va_start(va, pszFormat); 102 RTLogBackdoorPrintfV(pszFormat, va); 103 va_end(va); 104 #endif 58 char szMsg[256]; 105 59 106 60 va_start(va, pszFormat); … … 109 63 va_end(va); 110 64 printk("%s", szMsg); 111 112 va_start(va, pszFormat);113 RTStrPrintfV(g_szRTAssertMsg2, sizeof(g_szRTAssertMsg2), pszFormat, va);114 va_end(va);115 65 } 116 RT_EXPORT_SYMBOL(AssertMsg2);117 66 118 67
Note:
See TracChangeset
for help on using the changeset viewer.