Changeset 35513 in vbox for trunk/src/VBox/Main
- Timestamp:
- Jan 12, 2011 5:50:43 PM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/MachineDebuggerImpl.cpp
r35504 r35513 1085 1085 return S_OK; 1086 1086 1087 case DBGFREGVALTYPE_LRD: 1088 /** @todo long double -> string conversion. */ 1089 /** @todo long double == double on MSC. Stupid, stupid, 1090 * microsoft! */ 1091 RTStrFormatNumber(szHex, a_pValue->au16[5], 16, 2+4, 0, RTSTR_F_SPECIAL | RTSTR_F_ZEROPAD | RTSTR_F_16BIT); 1092 RTStrFormatNumber(&szHex[2+4], a_pValue->au64[0], 16, 16, 0, RTSTR_F_ZEROPAD | RTSTR_F_64BIT); 1087 case DBGFREGVALTYPE_R80: 1088 { 1089 char *pszHex = szHex; 1090 if (a_pValue->r80.s.fSign) 1091 *pszHex++ = '-'; 1092 1093 if (a_pValue->r80.s.uExponent == 0) 1094 { 1095 if ( !a_pValue->r80.sj64.u63Fraction 1096 && a_pValue->r80.sj64.fInteger) 1097 *pszHex++ = '0'; 1098 /* else: Denormal, handled way below. */ 1099 } 1100 else if (a_pValue->r80.sj64.uExponent == UINT16_C(0x7fff)) 1101 { 1102 /** @todo Figure out Pseudo inf/nan... */ 1103 if (a_pValue->r80.sj64.fInteger) 1104 *pszHex++ = 'P'; 1105 if (a_pValue->r80.sj64.u63Fraction == 0) 1106 { 1107 *pszHex++ = 'I'; 1108 *pszHex++ = 'n'; 1109 *pszHex++ = 'f'; 1110 } 1111 else 1112 { 1113 *pszHex++ = 'N'; 1114 *pszHex++ = 'a'; 1115 *pszHex++ = 'N'; 1116 } 1117 } 1118 if (pszHex != &szHex[1]) 1119 *pszHex = '\0'; 1120 else 1121 { 1122 *pszHex++ = a_pValue->r80.sj64.fInteger ? '1' : '0'; 1123 *pszHex++ = 'm'; 1124 pszHex += RTStrFormatNumber(pszHex, a_pValue->r80.sj64.u63Fraction, 16, 2+16, 0, 1125 RTSTR_F_SPECIAL | RTSTR_F_ZEROPAD | RTSTR_F_64BIT); 1126 1127 *pszHex++ = 'e'; 1128 pszHex += RTStrFormatNumber(pszHex, (int32_t)a_pValue->r80.sj64.uExponent - 16383, 10, 0, 0, 1129 RTSTR_F_ZEROPAD | RTSTR_F_32BIT | RTSTR_F_VALSIGNED); 1130 } 1093 1131 *a_pbstr = szHex; 1094 1132 return S_OK; 1133 } 1095 1134 1096 1135 case DBGFREGVALTYPE_DTR:
Note:
See TracChangeset
for help on using the changeset viewer.