VirtualBox

忽略:
時間撮記:
2015-10-27 下午04:17:12 (9 年 以前)
作者:
vboxsync
訊息:

Main: Added paravirtdebug options.

檔案:
修改 1 筆資料

圖例:

未更動
新增
刪除
  • trunk/src/VBox/Main/src-client/ConsoleImpl2.cpp

    r58056 r58437  
    946946    hrc = pMachine->GetEffectiveParavirtProvider(&paravirtProvider);                        H();
    947947
     948    Bstr strParavirtDebug;
     949    hrc = pMachine->COMGETTER(ParavirtDebug)(strParavirtDebug.asOutParam());                H();
     950
    948951    ChipsetType_T chipsetType;
    949952    hrc = pMachine->COMGETTER(ChipsetType)(&chipsetType);                                   H();
     
    12901293
    12911294        /*
     1295         * Parse paravirt. debug options.
     1296         */
     1297        bool         fGimDebug          = false;
     1298        com::Utf8Str strGimDebugAddress = "127.0.0.1";
     1299        uint32_t     uGimDebugPort      = 50000;
     1300        if (strParavirtDebug.isNotEmpty())
     1301        {
     1302            /* Hyper-V debug options. */
     1303            if (paravirtProvider == ParavirtProvider_HyperV)
     1304            {
     1305                bool         fGimHvDebug = false;
     1306                com::Utf8Str strGimHvVendor;
     1307                bool         fGimHvVsIf;
     1308                bool         fGimHvHypercallIf;
     1309
     1310                size_t       uPos = 0;
     1311                com::Utf8Str strDebugOptions = strParavirtDebug;
     1312                do
     1313                {
     1314                    com::Utf8Str strKey;
     1315                    com::Utf8Str strVal;
     1316                    uPos = strDebugOptions.parseKeyValue(strKey, strVal, uPos);
     1317                    if (   strKey == "enabled"
     1318                        && strVal.toUInt32() == 1)
     1319                    {
     1320                        /* Apply defaults. */
     1321                        fGimHvDebug       = true;
     1322                        strGimHvVendor    = "Microsoft Hv";
     1323                        fGimHvVsIf        = true;
     1324                        fGimHvHypercallIf = false;
     1325                    }
     1326                    else if (strKey == "address")
     1327                        strGimDebugAddress = strVal;
     1328                    else if (strKey == "port")
     1329                        uGimDebugPort = strVal.toUInt32();
     1330                    else if (strKey == "vendor")
     1331                        strGimHvVendor = strVal;
     1332                    else if (strKey == "vsinterface")
     1333                        fGimHvVsIf = RT_BOOL(strVal.toUInt32());
     1334                    else if (strKey == "hypercallinterface")
     1335                        fGimHvHypercallIf = RT_BOOL(strVal.toUInt32());
     1336                } while (uPos != com::Utf8Str::npos);
     1337
     1338                /* Update HyperV CFGM node with active debug options. */
     1339                if (fGimHvDebug)
     1340                {
     1341                    PCFGMNODE pHvNode;
     1342                    InsertConfigNode(pParavirtNode, "HyperV", &pHvNode);
     1343                    InsertConfigString(pHvNode,  "VendorID", strGimHvVendor);
     1344                    InsertConfigInteger(pHvNode, "VSInterface", fGimHvVsIf ? 1 : 0);
     1345                    InsertConfigInteger(pHvNode, "HypercallDebugInterface", fGimHvHypercallIf ? 1 : 0);
     1346                    fGimDebug = true;
     1347                }
     1348            }
     1349        }
     1350
     1351        /*
    12921352         * MM values.
    12931353         */
     
    14111471            //InsertConfigNode(pInst,    "Config", &pCfg);
    14121472
    1413             InsertConfigNode(pInst,     "LUN#998", &pLunL0);
    1414             InsertConfigString(pLunL0,  "Driver", "UDP");
    1415             InsertConfigNode(pLunL0,    "Config", &pLunL1);
    1416             InsertConfigString(pLunL1,  "ServerAddress", "127.0.0.1");
    1417             InsertConfigInteger(pLunL1, "ServerPort", 50000);
     1473            if (fGimDebug)
     1474            {
     1475                InsertConfigNode(pInst,     "LUN#998", &pLunL0);
     1476                InsertConfigString(pLunL0,  "Driver", "UDP");
     1477                InsertConfigNode(pLunL0,    "Config", &pLunL1);
     1478                InsertConfigString(pLunL1,  "ServerAddress", strGimDebugAddress);
     1479                InsertConfigInteger(pLunL1, "ServerPort", uGimDebugPort);
     1480            }
    14181481        }
    14191482
注意: 瀏覽 TracChangeset 來幫助您使用更動檢視器

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