Changeset 64586 in vbox for trunk/include/VBox
- Timestamp:
- Nov 6, 2016 1:56:36 PM (8 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/include/VBox/vmm/dbgf.h
r64559 r64586 2500 2500 /** Pointer to a DBGF control flow graph basic block handle. */ 2501 2501 typedef DBGFFLOWBB *PDBGFFLOWBB; 2502 /** A DBGF control flow graph branch table handle. */ 2503 typedef struct DBGFFLOWBRANCHTBLINT *DBGFFLOWBRANCHTBL; 2504 /** Pointer to a DBGF flow control graph branch table handle. */ 2505 typedef DBGFFLOWBRANCHTBL *PDBGFFLOWBRANCHTBL; 2502 2506 /** A DBGF control flow graph iterator. */ 2503 2507 typedef struct DBGFFLOWITINT *DBGFFLOWIT; … … 2513 2517 /** The basic block is not complete because an error happened during disassembly. */ 2514 2518 #define DBGF_FLOW_BB_F_INCOMPLETE_ERR RT_BIT_32(2) 2519 /** The basic block is reached through a branch table. */ 2520 #define DBGF_FLOW_BB_F_BRANCH_TABLE RT_BIT_32(3) 2521 /** @} */ 2522 2523 /** @name Flags controlling the creating of a control flow graph. 2524 * @{ */ 2525 /** Default options. */ 2526 #define DBGF_FLOW_CREATE_F_DEFAULT 0 2527 /** Tries to resolve indirect branches, useful for code using 2528 * jump tables generated for large switch statements by some compilers. */ 2529 #define DBGF_FLOW_CREATE_F_TRY_RESOLVE_INDIRECT_BRANCHES RT_BIT_32(0) 2515 2530 /** @} */ 2516 2531 … … 2532 2547 * basic blocks. - 1 successor. */ 2533 2548 DBGFFLOWBBENDTYPE_UNCOND, 2534 /** Unconditional control flow change because of a jump instruction- 1 successor. */2549 /** Unconditional control flow change because of an direct branch - 1 successor. */ 2535 2550 DBGFFLOWBBENDTYPE_UNCOND_JMP, 2551 /** Unconditional control flow change because of an indirect branch - n successors. */ 2552 DBGFFLOWBBENDTYPE_UNCOND_INDIRECT_JMP, 2536 2553 /** Conditional control flow change - 2 successors. */ 2537 2554 DBGFFLOWBBENDTYPE_COND, … … 2558 2575 DBGFFLOWITORDER_32BIT_HACK = 0x7fffffff 2559 2576 } DBGFFLOWITORDER; 2560 /** P Ointer to a iteration order enum. */2577 /** Pointer to a iteration order enum. */ 2561 2578 typedef DBGFFLOWITORDER *PDBGFFLOWITORDER; 2562 2579 2563 2580 2564 2581 VMMR3DECL(int) DBGFR3FlowCreate(PUVM pUVM, VMCPUID idCpu, PDBGFADDRESS pAddressStart, uint32_t cbDisasmMax, 2565 uint32_t fFlags, PDBGFFLOW phFlow);2582 uint32_t fFlagsFlow, uint32_t fFlagsDisasm, PDBGFFLOW phFlow); 2566 2583 VMMR3DECL(uint32_t) DBGFR3FlowRetain(DBGFFLOW hFlow); 2567 2584 VMMR3DECL(uint32_t) DBGFR3FlowRelease(DBGFFLOW hFlow); 2568 2585 VMMR3DECL(int) DBGFR3FlowQueryStartBb(DBGFFLOW hFlow, PDBGFFLOWBB phFlowBb); 2569 2586 VMMR3DECL(int) DBGFR3FlowQueryBbByAddress(DBGFFLOW hFlow, PDBGFADDRESS pAddr, PDBGFFLOWBB phFlowBb); 2587 VMMR3DECL(int) DBGFR3FlowQueryBranchTblByAddress(DBGFFLOW hFlow, PDBGFADDRESS pAddr, PDBGFFLOWBRANCHTBL phFlowBranchTbl); 2570 2588 VMMR3DECL(uint32_t) DBGFR3FlowGetBbCount(DBGFFLOW hFlow); 2589 VMMR3DECL(uint32_t) DBGFR3FlowGetBranchTblCount(DBGFFLOW hFlow); 2590 2571 2591 VMMR3DECL(uint32_t) DBGFR3FlowBbRetain(DBGFFLOWBB hFlowBb); 2572 2592 VMMR3DECL(uint32_t) DBGFR3FlowBbRelease(DBGFFLOWBB hFlowBb); … … 2578 2598 VMMR3DECL(uint32_t) DBGFR3FlowBbGetInstrCount(DBGFFLOWBB hFlowBb); 2579 2599 VMMR3DECL(uint32_t) DBGFR3FlowBbGetFlags(DBGFFLOWBB hFlowBb); 2600 VMMR3DECL(int) DBGFR3FlowBbQueryBranchTbl(DBGFFLOWBB hFlowBb, PDBGFFLOWBRANCHTBL phBranchTbl); 2580 2601 VMMR3DECL(int) DBGFR3FlowBbQueryError(DBGFFLOWBB hFlowBb, const char **ppszErr); 2581 2602 VMMR3DECL(int) DBGFR3FlowBbQueryInstr(DBGFFLOWBB hFlowBb, uint32_t idxInstr, PDBGFADDRESS pAddrInstr, … … 2583 2604 VMMR3DECL(int) DBGFR3FlowBbQuerySuccessors(DBGFFLOWBB hFlowBb, PDBGFFLOWBB phFlowBbFollow, 2584 2605 PDBGFFLOWBB phFlowBbTarget); 2606 2585 2607 VMMR3DECL(uint32_t) DBGFR3FlowBbGetRefBbCount(DBGFFLOWBB hFlowBb); 2586 2608 VMMR3DECL(int) DBGFR3FlowBbGetRefBb(DBGFFLOWBB hFlowBb, PDBGFFLOWBB pahFlowBbRef, uint32_t cRef); 2609 2610 VMMR3DECL(uint32_t) DBGFR3FlowBranchTblRetain(DBGFFLOWBRANCHTBL hFlowBranchTbl); 2611 VMMR3DECL(uint32_t) DBGFR3FlowBranchTblRelease(DBGFFLOWBRANCHTBL hFlowBranchTbl); 2612 VMMR3DECL(uint32_t) DBGFR3FlowBranchTblGetSlots(DBGFFLOWBRANCHTBL hFlowBranchTbl); 2613 VMMR3DECL(PDBGFADDRESS) DBGFR3FlowBranchTblGetStartAddress(DBGFFLOWBRANCHTBL hFlowBranchTbl, PDBGFADDRESS pAddrStart); 2614 VMMR3DECL(int) DBGFR3FlowBranchTblQueryAddresses(DBGFFLOWBRANCHTBL hFlowBranchTbl, PDBGFADDRESS paAddrs, uint32_t cAddrs); 2615 2587 2616 VMMR3DECL(int) DBGFR3FlowItCreate(DBGFFLOW hFlow, DBGFFLOWITORDER enmOrder, PDBGFFLOWIT phFlowIt); 2588 2617 VMMR3DECL(void) DBGFR3FlowItDestroy(DBGFFLOWIT hFlowIt);
Note:
See TracChangeset
for help on using the changeset viewer.