Changeset 73397 in vbox for trunk/include
- Timestamp:
- Jul 30, 2018 3:25:28 PM (7 years ago)
- svn:sync-xref-src-repo-rev:
- 124015
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/dbgf.h
r73351 r73397 109 109 /** Checks if the mixed address is far 16:64 or not. */ 110 110 #define DBGFADDRESS_IS_FAR64(pAddress) ( ((pAddress)->fFlags & DBGFADDRESS_FLAGS_TYPE_MASK) == DBGFADDRESS_FLAGS_FAR64 ) 111 /** Checks if the mixed address is any kind of far address. */ 112 #define DBGFADDRESS_IS_FAR(pAddress) ( ((pAddress)->fFlags & DBGFADDRESS_FLAGS_TYPE_MASK) <= DBGFADDRESS_FLAGS_FAR64 ) 111 113 /** Checks if the mixed address host context ring-0 (special). */ 112 114 #define DBGFADDRESS_IS_R0_HC(pAddress) ( ((pAddress)->fFlags & DBGFADDRESS_FLAGS_TYPE_MASK) == DBGFADDRESS_FLAGS_RING0 ) … … 1268 1270 } 1269 1271 1272 /** 1273 * Check if near return. 1274 * 1275 * @returns true if near, false if far or iret. 1276 * @param enmRetType The type of return. 1277 */ 1278 DECLINLINE(bool) DBGFReturnTypeIsNear(DBGFRETURNTYPE enmRetType) 1279 { 1280 return enmRetType == DBGFRETURNTYPE_NEAR32 1281 || enmRetType == DBGFRETURNTYPE_NEAR64 1282 || enmRetType == DBGFRETURNTYPE_NEAR16; 1283 } 1284 1270 1285 1271 1286 /** Pointer to stack frame info. */ … … 1282 1297 /** Frame flags. */ 1283 1298 uint32_t fFlags; 1284 /** The frame address.1285 * The off member is [e|r]bp and the Sel member is ss. */1286 DBGFADDRESS AddrFrame;1287 1299 /** The stack address of the frame. 1288 1300 * The off member is [e|r]sp and the Sel member is ss. */ … … 1293 1305 /** Pointer to the symbol nearest the program counter (PC). NULL if not found. */ 1294 1306 PRTDBGSYMBOL pSymPC; 1295 /** Pointer to the lin number nearest the program counter (PC). NULL if not found. */1307 /** Pointer to the linenumber nearest the program counter (PC). NULL if not found. */ 1296 1308 PRTDBGLINE pLinePC; 1297 1309 /** The frame address. 1310 * The off member is [e|r]bp and the Sel member is ss. */ 1311 DBGFADDRESS AddrFrame; 1312 /** The way this frame returns to the next one. */ 1313 DBGFRETURNTYPE enmReturnType; 1314 1315 /** The way the next frame returns. 1316 * Only valid when DBGFSTACKFRAME_FLAGS_UNWIND_INFO_RET is set. */ 1317 DBGFRETURNTYPE enmReturnFrameReturnType; 1298 1318 /** The return frame address. 1299 1319 * The off member is [e|r]bp and the Sel member is ss. */ … … 1302 1322 * The off member is [e|r]sp and the Sel member is ss. */ 1303 1323 DBGFADDRESS AddrReturnStack; 1304 /** The way this frame returns to the next one. */1305 DBGFRETURNTYPE enmReturnType;1306 1324 1307 1325 /** The program counter (PC) address which the frame returns to. … … 1310 1328 /** Pointer to the symbol nearest the return PC. NULL if not found. */ 1311 1329 PRTDBGSYMBOL pSymReturnPC; 1312 /** Pointer to the lin number nearest the return PC. NULL if not found. */1330 /** Pointer to the linenumber nearest the return PC. NULL if not found. */ 1313 1331 PRTDBGLINE pLineReturnPC; 1314 1332 … … 1336 1354 /** @name DBGFSTACKFRAME Flags. 1337 1355 * @{ */ 1338 /** Set if the content of the frame is filled in by DBGFR3StackWalk() and can be used1339 * to construct the next frame. */1340 # define DBGFSTACKFRAME_FLAGS_ALL_VALID RT_BIT(0)1341 1356 /** This is the last stack frame we can read. 1342 1357 * This flag is not set if the walk stop because of max dept or recursion. */ 1343 # define DBGFSTACKFRAME_FLAGS_LAST RT_BIT(1)1358 # define DBGFSTACKFRAME_FLAGS_LAST RT_BIT(1) 1344 1359 /** This is the last record because we detected a loop. */ 1345 # define DBGFSTACKFRAME_FLAGS_LOOP RT_BIT(2)1360 # define DBGFSTACKFRAME_FLAGS_LOOP RT_BIT(2) 1346 1361 /** This is the last record because we reached the maximum depth. */ 1347 # define DBGFSTACKFRAME_FLAGS_MAX_DEPTH RT_BIT(3)1362 # define DBGFSTACKFRAME_FLAGS_MAX_DEPTH RT_BIT(3) 1348 1363 /** 16-bit frame. */ 1349 # define DBGFSTACKFRAME_FLAGS_16BIT RT_BIT(4)1364 # define DBGFSTACKFRAME_FLAGS_16BIT RT_BIT(4) 1350 1365 /** 32-bit frame. */ 1351 # define DBGFSTACKFRAME_FLAGS_32BIT RT_BIT(5)1366 # define DBGFSTACKFRAME_FLAGS_32BIT RT_BIT(5) 1352 1367 /** 64-bit frame. */ 1353 # define DBGFSTACKFRAME_FLAGS_64BIT RT_BIT(6) 1368 # define DBGFSTACKFRAME_FLAGS_64BIT RT_BIT(6) 1369 /** Real mode or V86 frame. */ 1370 # define DBGFSTACKFRAME_FLAGS_REAL_V86 RT_BIT(7) 1354 1371 /** Used Odd/even heuristics for far/near return. */ 1355 # define DBGFSTACKFRAME_FLAGS_USED_ODD_EVEN RT_BIT(7) 1372 # define DBGFSTACKFRAME_FLAGS_USED_ODD_EVEN RT_BIT(8) 1373 /** Set if we used unwind info to construct the frame. (Kind of internal.) */ 1374 # define DBGFSTACKFRAME_FLAGS_USED_UNWIND_INFO RT_BIT(30) 1375 /** Internal: Unwind info used for the return frame. */ 1376 # define DBGFSTACKFRAME_FLAGS_UNWIND_INFO_RET RT_BIT(31) 1356 1377 /** @} */ 1357 1378
Note:
See TracChangeset
for help on using the changeset viewer.