Changeset 86246 in vbox
- Timestamp:
- Sep 23, 2020 4:28:45 PM (4 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/Debugger/DBGCRemoteKd.cpp
r86244 r86246 1113 1113 /** Cause a bugcheck request. */ 1114 1114 #define KD_PACKET_MANIPULATE_REQ_CAUSE_BUGCHECK UINT32_C(0x00003149) 1115 /** Cause a bugcheck request. */ 1116 #define KD_PACKET_MANIPULATE_REQ_SWITCH_PROCESSOR UINT32_C(0x00003150) 1115 1117 /** @todo */ 1116 1118 /** Search memory for a pattern request. */ … … 1312 1314 case KD_PACKET_MANIPULATE_REQ_QUERY_MEMORY: return "QueryMemory"; 1313 1315 case KD_PACKET_MANIPULATE_REQ_CAUSE_BUGCHECK: return "CauseBugCheck"; 1316 case KD_PACKET_MANIPULATE_REQ_SWITCH_PROCESSOR: return "SwitchProcessor"; 1314 1317 case KD_PACKET_MANIPULATE_REQ_SEARCH_MEMORY: return "SearchMemory"; 1315 1318 default: break; … … 1463 1466 break; 1464 1467 } 1468 case KD_PACKET_MANIPULATE_REQ_SWITCH_PROCESSOR: 1465 1469 default: 1466 1470 break; … … 3404 3408 3405 3409 /** 3410 * Processes a switch processor request. 3411 * 3412 * @returns VBox status code. 3413 * @param pThis The KD context. 3414 * @param pPktManip The manipulate packet request. 3415 */ 3416 static int dbgcKdCtxPktManipulate64SwitchProcessor(PKDCTX pThis, PCKDPACKETMANIPULATE64 pPktManip) 3417 { 3418 int rc = VINF_SUCCESS; 3419 3420 if (RT_UNLIKELY(pPktManip->Hdr.idCpu >= DBGFR3CpuGetCount(pThis->Dbgc.pUVM))) 3421 { 3422 KDPACKETMANIPULATEHDR RespHdr; 3423 RT_ZERO(RespHdr); 3424 3425 RespHdr.idReq = KD_PACKET_MANIPULATE_REQ_SWITCH_PROCESSOR; 3426 RespHdr.u16CpuLvl = pPktManip->Hdr.u16CpuLvl; 3427 RespHdr.idCpu = pPktManip->Hdr.idCpu; 3428 RespHdr.u32NtStatus = NTSTATUS_UNSUCCESSFUL; /** @todo Test this path. */ 3429 rc = dbgcKdCtxPktSend(pThis, KD_PACKET_HDR_SIGNATURE_DATA, KD_PACKET_HDR_SUB_TYPE_STATE_MANIPULATE, 3430 &RespHdr, sizeof(RespHdr), true /*fAck*/); 3431 } 3432 else 3433 { 3434 pThis->Dbgc.idCpu = pPktManip->Hdr.idCpu; 3435 rc = dbgcKdCtxStateChangeSend(pThis, DBGFEVENT_HALT_DONE); 3436 } 3437 3438 return rc; 3439 } 3440 3441 3442 /** 3406 3443 * Processes a manipulate packet. 3407 3444 * … … 3489 3526 { 3490 3527 rc = dbgcKdCtxPktManipulate64CauseBugCheck(pThis, pPktManip); 3528 break; 3529 } 3530 case KD_PACKET_MANIPULATE_REQ_SWITCH_PROCESSOR: 3531 { 3532 rc = dbgcKdCtxPktManipulate64SwitchProcessor(pThis, pPktManip); 3491 3533 break; 3492 3534 }
Note:
See TracChangeset
for help on using the changeset viewer.