VirtualBox

Changeset 24084 in vbox for trunk/src


Ignore:
Timestamp:
Oct 26, 2009 3:16:40 PM (15 years ago)
Author:
vboxsync
Message:

VBoxManage: snapshot dump fixes.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VBoxManage/VBoxManageSnapshot.cpp

    r24081 r24084  
    3838
    3939/**
    40  * Helper function used with "VBoxManage snapshot ... dump".
     40 * Helper function used with "VBoxManage snapshot ... dump". Gets called to find the
     41 * snapshot in the machine's snapshot tree that uses a particular diff image child of
     42 * a medium.
     43 * Horribly inefficient since we keep re-querying the snapshots tree for each image,
     44 * but this is for quick debugging only.
    4145 * @param pMedium
    4246 * @param pThisSnapshot
     
    6468        CHECK_ERROR_BREAK(pSnapshotMachine, COMGETTER(MediumAttachments)(ComSafeArrayAsOutParam(aAttachments)));
    6569
    66         bool fFound = false;
    67 
    6870        for (uint32_t i = 0;
    6971             i < aAttachments.size();
     
    8486                    CHECK_ERROR_BREAK(pThisSnapshot, COMGETTER(Name)(bstrSnapshotName.asOutParam()));
    8587
    86                     RTPrintf("%*s  \"%ls\"\n",
     88                    RTPrintf("%*s  \"%ls\"%s\n",
    8789                             50 + uSnapshotLevel * 2, "",            // indent
    88                              bstrSnapshotName.raw());
     90                             bstrSnapshotName.raw(),
     91                             (pThisSnapshot == pCurrentSnapshot) ? " (CURSNAP)" : "");
    8992                    return true;        // found
    9093                }
     
    9295        }
    9396
    94         if (!fFound)
    95         {
    96             SafeIfaceArray<ISnapshot> aSnapshots;
    97             CHECK_ERROR_BREAK(pThisSnapshot, COMGETTER(Children)(ComSafeArrayAsOutParam(aSnapshots)));
    98 
    99             for (uint32_t i = 0;
    100                 i < aSnapshots.size();
    101                 ++i)
    102             {
    103                 ComPtr<ISnapshot> pChild(aSnapshots[i]);
    104                 if (FindAndPrintSnapshotUsingMedium(pMedium,
    105                                                     pChild,
    106                                                     pCurrentSnapshot,
    107                                                     uMediumLevel,
    108                                                     uSnapshotLevel + 1))
    109                     // found:
    110                     break;
    111             }
     97        // not found: then recurse into child snapshots
     98        SafeIfaceArray<ISnapshot> aSnapshots;
     99        CHECK_ERROR_BREAK(pThisSnapshot, COMGETTER(Children)(ComSafeArrayAsOutParam(aSnapshots)));
     100
     101        for (uint32_t i = 0;
     102            i < aSnapshots.size();
     103            ++i)
     104        {
     105            ComPtr<ISnapshot> pChild(aSnapshots[i]);
     106            if (FindAndPrintSnapshotUsingMedium(pMedium,
     107                                                pChild,
     108                                                pCurrentSnapshot,
     109                                                uMediumLevel,
     110                                                uSnapshotLevel + 1))
     111                // found:
     112                break;
    112113        }
    113114    } while (0);
     
    142143                 uLevel * 2, "",            // indent
    143144                 bstrMediumName.raw(),
    144                  (pCurrentStateMedium == pMedium) ? " (CURRENT STATE)" : "");
     145                 (pCurrentStateMedium == pMedium) ? " (CURSTATE)" : "");
    145146
    146147        // find and print the snapshot that uses this particular medium (diff image)
Note: See TracChangeset for help on using the changeset viewer.

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