Changeset 35550 in vbox for trunk/src/VBox/Main/src-client
- Timestamp:
- Jan 13, 2011 6:08:54 PM (14 years ago)
- svn:sync-xref-src-repo-rev:
- 69434
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Main/src-client/MachineDebuggerImpl.cpp
r35513 r35550 1232 1232 * Real work. 1233 1233 */ 1234 /** @todo query all registers. */ 1235 DBGFREGENTRY aRegs[DBGFREG_ALL_COUNT]; 1236 int vrc = DBGFR3RegCpuQueryAll(ptrVM.raw(), a_idCpu, aRegs, RT_ELEMENTS(aRegs)); 1234 size_t cRegs; 1235 int vrc = DBGFR3RegNmQueryAllCount(ptrVM.raw(), &cRegs); 1237 1236 if (RT_SUCCESS(vrc)) 1238 1237 { 1239 try 1238 PDBGFREGENTRYNM paRegs = (PDBGFREGENTRYNM)RTMemAllocZ(sizeof(paRegs[0]) * cRegs); 1239 if (paRegs) 1240 1240 { 1241 com::SafeArray<BSTR> abstrNames(RT_ELEMENTS(aRegs)); 1242 com::SafeArray<BSTR> abstrValues(RT_ELEMENTS(aRegs)); 1243 1244 for (uint32_t iReg = 0; iReg < RT_ELEMENTS(aRegs); iReg++) 1241 vrc = DBGFR3RegNmQueryAll(ptrVM.raw(), paRegs, cRegs); 1242 if (RT_SUCCESS(vrc)) 1245 1243 { 1246 char szHex[128]; 1247 Bstr bstrValue; 1248 1249 hrc = formatRegisterValue(&bstrValue, &aRegs[iReg].Val, aRegs[iReg].enmType); 1250 AssertComRC(hrc); 1251 bstrValue.detachTo(&abstrValues[iReg]); 1252 1253 Bstr bstrName(DBGFR3RegCpuName(ptrVM.raw(), aRegs[iReg].enmReg, DBGFREGVALTYPE_INVALID)); 1254 bstrName.detachTo(&abstrNames[iReg]); 1244 try 1245 { 1246 com::SafeArray<BSTR> abstrNames(cRegs); 1247 com::SafeArray<BSTR> abstrValues(cRegs); 1248 1249 for (uint32_t iReg = 0; iReg < cRegs; iReg++) 1250 { 1251 char szHex[128]; 1252 Bstr bstrValue; 1253 1254 hrc = formatRegisterValue(&bstrValue, &paRegs[iReg].Val, paRegs[iReg].enmType); 1255 AssertComRC(hrc); 1256 bstrValue.detachTo(&abstrValues[iReg]); 1257 1258 Bstr bstrName(paRegs[iReg].pszName); 1259 bstrName.detachTo(&abstrNames[iReg]); 1260 } 1261 1262 abstrNames.detachTo(ComSafeArrayOutArg(a_bstrNames)); 1263 abstrValues.detachTo(ComSafeArrayOutArg(a_bstrValues)); 1264 } 1265 catch (std::bad_alloc) 1266 { 1267 hrc = E_OUTOFMEMORY; 1268 } 1255 1269 } 1256 1257 abstrValues.detachTo(ComSafeArrayOutArg(a_bstrNames)); 1258 abstrValues.detachTo(ComSafeArrayOutArg(a_bstrValues)); 1270 else 1271 hrc = setError(E_FAIL, tr("DBGFR3RegNmQueryAll failed with %Rrc"), vrc); 1272 1273 RTMemFree(paRegs); 1259 1274 } 1260 catch (std::bad_alloc) 1261 { 1275 else 1262 1276 hrc = E_OUTOFMEMORY; 1263 }1264 1277 } 1265 1278 else 1266 hrc = setError(E_FAIL, tr("DBGFR3Reg QueryAllfailed with %Rrc"), vrc);1279 hrc = setError(E_FAIL, tr("DBGFR3RegNmQueryAllCount failed with %Rrc"), vrc); 1267 1280 } 1268 1281 }
Note:
See TracChangeset
for help on using the changeset viewer.