VirtualBox

Changeset 84458 in vbox for trunk/src/VBox/VMM/VMMR0


Ignore:
Timestamp:
May 22, 2020 12:51:49 PM (5 years ago)
Author:
vboxsync
Message:

VMM/DBGF: First commit of new tracing facility, bugref:9210

The new DBGF tracing facility allows efficient capturing of events to a compact binary
trace log for later analysis. It is primarily intended for recording device/guest
interactions for now but can be extended easily for other types of events later on.
It supports capturing events happening in both R0 and R3 by using a shared ring buffer
to post events to. The events are processed by a dedicated I/O thread which writes
new events into the binary trace log file.

This is only the core VMM/DBGF part providing the API, the integration with PDM
comes in a separate commit.

Disabled by default for now because it is still work in progress,
enable with VBOX_WITH_DBGF_TRACING.

Location:
trunk/src/VBox/VMM/VMMR0
Files:
1 added
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/VMMR0/VMMR0.cpp

    r82968 r84458  
    22262226        }
    22272227
     2228#ifdef VBOX_WITH_DBGF_TRACING
     2229        case VMMR0_DO_DBGF_TRACER_CREATE:
     2230        {
     2231            if (!pReqHdr || u64Arg || idCpu != 0)
     2232                return VERR_INVALID_PARAMETER;
     2233            rc = DBGFR0TracerCreateReqHandler(pGVM, (PDBGFTRACERCREATEREQ)pReqHdr);
     2234            VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);
     2235            break;
     2236        }
     2237
     2238        case VMMR0_DO_DBGF_TRACER_CALL_REQ_HANDLER:
     2239        {
     2240            if (!pReqHdr || u64Arg)
     2241                return VERR_INVALID_PARAMETER;
     2242#if 0 /** @todo */
     2243            rc = DBGFR0TracerGenCallReqHandler(pGVM, (PDBGFTRACERGENCALLREQ)pReqHdr, idCpu);
     2244#else
     2245            rc = VERR_NOT_IMPLEMENTED;
     2246#endif
     2247            VMM_CHECK_SMAP_CHECK2(pGVM, RT_NOTHING);
     2248            break;
     2249        }
     2250#endif
     2251
    22282252        /*
    22292253         * For profiling.
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