Index: /trunk/src/VBox/VMM/VMMR0/PDMR0DevHlpTracing.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR0/PDMR0DevHlpTracing.cpp	(revision 84552)
+++ /trunk/src/VBox/VMM/VMMR0/PDMR0DevHlpTracing.cpp	(revision 84553)
@@ -75,6 +75,10 @@
 
     Assert(!pTrack->fMmio);
+    PGVM pGVM = pDevIns->Internal.s.pGVM;
+    uint32_t cTransfersReq = *pcTransfers;
     VBOXSTRICTRC rcStrict = pTrack->u.IoPort.pfnInStr(pDevIns, pTrack->pvUser, offPort, pbDst, pcTransfers, cb);
-    /** @todo */
+    if (RT_SUCCESS(rcStrict))
+        DBGFTracerEvtIoPortReadStr(pGVM, pDevIns->Internal.s.hDbgfTraceEvtSrc, pTrack->u.IoPort.hIoPorts, offPort, pbDst, cb,
+                                   cTransfersReq, cTransfersReq - *pcTransfers);
 
     return rcStrict;
@@ -102,6 +106,10 @@
 
     Assert(!pTrack->fMmio);
+    PGVM pGVM = pDevIns->Internal.s.pGVM;
+    uint32_t cTransfersReq = *pcTransfers;
     VBOXSTRICTRC rcStrict = pTrack->u.IoPort.pfnOutStr(pDevIns, pTrack->pvUser, offPort, pbSrc, pcTransfers, cb);
-    /** @todo */
+    if (RT_SUCCESS(rcStrict))
+        DBGFTracerEvtIoPortWriteStr(pGVM, pDevIns->Internal.s.hDbgfTraceEvtSrc, pTrack->u.IoPort.hIoPorts, offPort, pbSrc, cb,
+                                    cTransfersReq, cTransfersReq - *pcTransfers);
 
     return rcStrict;
Index: /trunk/src/VBox/VMM/VMMR3/PDMDevHlpTracing.cpp
===================================================================
--- /trunk/src/VBox/VMM/VMMR3/PDMDevHlpTracing.cpp	(revision 84552)
+++ /trunk/src/VBox/VMM/VMMR3/PDMDevHlpTracing.cpp	(revision 84553)
@@ -75,6 +75,10 @@
 
     Assert(!pTrack->fMmio);
+    PVM pVM = pDevIns->Internal.s.pVMR3;
+    uint32_t cTransfersReq = *pcTransfers;
     VBOXSTRICTRC rcStrict = pTrack->u.IoPort.pfnInStr(pDevIns, pTrack->pvUser, offPort, pbDst, pcTransfers, cb);
-    /** @todo */
+    if (RT_SUCCESS(rcStrict))
+        DBGFTracerEvtIoPortReadStr(pVM, pDevIns->Internal.s.hDbgfTraceEvtSrc, pTrack->u.IoPort.hIoPorts, offPort, pbDst, cb,
+                                   cTransfersReq, cTransfersReq - *pcTransfers);
 
     return rcStrict;
@@ -102,6 +106,10 @@
 
     Assert(!pTrack->fMmio);
+    PVM pVM = pDevIns->Internal.s.pVMR3;
+    uint32_t cTransfersReq = *pcTransfers;
     VBOXSTRICTRC rcStrict = pTrack->u.IoPort.pfnOutStr(pDevIns, pTrack->pvUser, offPort, pbSrc, pcTransfers, cb);
-    /** @todo */
+    if (RT_SUCCESS(rcStrict))
+        DBGFTracerEvtIoPortWriteStr(pVM, pDevIns->Internal.s.hDbgfTraceEvtSrc, pTrack->u.IoPort.hIoPorts, offPort, pbSrc, cb,
+                                    cTransfersReq, cTransfersReq - *pcTransfers);
 
     return rcStrict;
