VirtualBox

Ignore:
Timestamp:
Oct 22, 2023 2:43:09 AM (13 months ago)
Author:
vboxsync
Message:

DIS,VMM,DBGC,IPRT,++: Some disassembler tweaks and TB disassembly work. bugref:10371 bugref:9898

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Debugger/DBGPlugInLinux.cpp

    r99739 r101539  
    438438                                    || (    (DisState.Param1.fUse & (DISUSE_BASE | DISUSE_REG_GEN64))
    439439                                         && cbVal == sizeof(uint64_t)))
    440                                 && DisState.Param1.arch.x86.Base.idxGenReg == DISGREG_RAX)
     440                                && DisState.Param1.x86.Base.idxGenReg == DISGREG_RAX)
    441441                            {
    442442                                /* Parse the source. */
     
    448448
    449449                                    if (DisState.Param2.fUse & DISUSE_RIPDISPLACEMENT32)
    450                                         GCPtrVal = GCPtrCur + DisState.Param2.arch.x86.uDisp.i32 + cbInstr;
     450                                        GCPtrVal = GCPtrCur + DisState.Param2.x86.uDisp.i32 + cbInstr;
    451451                                    else if (DisState.Param2.fUse & DISUSE_DISPLACEMENT32)
    452                                         GCPtrVal = (RTGCPTR)DisState.Param2.arch.x86.uDisp.u32;
     452                                        GCPtrVal = (RTGCPTR)DisState.Param2.x86.uDisp.u32;
    453453                                    else if (DisState.Param2.fUse & DISUSE_DISPLACEMENT64)
    454                                         GCPtrVal = (RTGCPTR)DisState.Param2.arch.x86.uDisp.u64;
     454                                        GCPtrVal = (RTGCPTR)DisState.Param2.x86.uDisp.u64;
    455455                                    else
    456456                                        AssertMsgFailedBreakStmt(("Invalid displacement\n"), rc = VERR_INVALID_STATE);
     
    571571                             */
    572572                            if (   (DisState.Param2.fUse & DISUSE_REG_GEN8)
    573                                 && (   (DisState.Param2.arch.x86.Base.idxGenReg == DISGREG_AL && !pThis->f64Bit)
    574                                     || (DisState.Param2.arch.x86.Base.idxGenReg == DISGREG_DIL && pThis->f64Bit))
     573                                && (   (DisState.Param2.x86.Base.idxGenReg == DISGREG_AL && !pThis->f64Bit)
     574                                    || (DisState.Param2.x86.Base.idxGenReg == DISGREG_DIL && pThis->f64Bit))
    575575                                && DISUSE_IS_EFFECTIVE_ADDR(DisState.Param1.fUse))
    576576                            {
     
    657657                                 */
    658658                                if (   (DisState.Param1.fUse & (DISUSE_BASE | DISUSE_REG_GEN32 | DISUSE_REG_GEN64))
    659                                     && (DisState.Param2.arch.x86.cb == sizeof(uint32_t) || DisState.Param2.arch.x86.cb == sizeof(uint64_t))
     659                                    && (DisState.Param2.x86.cb == sizeof(uint32_t) || DisState.Param2.x86.cb == sizeof(uint64_t))
    660660                                    && (DisState.Param2.fUse & (DISUSE_RIPDISPLACEMENT32|DISUSE_DISPLACEMENT32|DISUSE_DISPLACEMENT64)))
    661661                                {
     
    663663
    664664                                    if (DisState.Param2.fUse & DISUSE_RIPDISPLACEMENT32)
    665                                         GCPtrVal = GCPtrCur + DisState.Param2.arch.x86.uDisp.i32 + cbInstr;
     665                                        GCPtrVal = GCPtrCur + DisState.Param2.x86.uDisp.i32 + cbInstr;
    666666                                    else if (DisState.Param2.fUse & DISUSE_DISPLACEMENT32)
    667                                         GCPtrVal = (RTGCPTR)DisState.Param2.arch.x86.uDisp.u32;
     667                                        GCPtrVal = (RTGCPTR)DisState.Param2.x86.uDisp.u32;
    668668                                    else if (DisState.Param2.fUse & DISUSE_DISPLACEMENT64)
    669                                         GCPtrVal = (RTGCPTR)DisState.Param2.arch.x86.uDisp.u64;
     669                                        GCPtrVal = (RTGCPTR)DisState.Param2.x86.uDisp.u64;
    670670                                    else
    671671                                        AssertMsgFailedBreakStmt(("Invalid displacement\n"), rc = VERR_INVALID_STATE);
     
    677677                                            aAddresses[cAddressesUsed].cb = sizeof(uint32_t);
    678678                                        else
    679                                             aAddresses[cAddressesUsed].cb = DisState.Param2.arch.x86.cb;
     679                                            aAddresses[cAddressesUsed].cb = DisState.Param2.x86.cb;
    680680                                        aAddresses[cAddressesUsed].GCPtrOrigSrc = GCPtrVal;
    681681                                        cAddressesUsed++;
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