VirtualBox

Changeset 110 in vbox for trunk


Ignore:
Timestamp:
Jan 17, 2007 3:53:30 PM (18 years ago)
Author:
vboxsync
Message:

Log patch returns.

Location:
trunk/src/VBox/VMM/PATM
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/VMM/PATM/PATMA.asm

    r91 r110  
    18811881    mov     eax, dword [ss:eax]                 ; relative patm return address
    18821882    add     eax, PATM_PATCHBASE
     1883
     1884%ifdef PATM_LOG_IF_CHANGES
     1885    push    eax
     1886    push    ecx
     1887    push    edx
     1888    mov     edx, eax                            ; return address
     1889    lock    or dword [ss:PATM_PENDINGACTION], PATM_ACTION_LOG_RET
     1890    mov     eax, PATM_ACTION_LOG_RET
     1891    mov     ecx, PATM_ACTION_MAGIC
     1892    db      0fh, 0bh        ; illegal instr (hardcoded assumption in PATMHandleIllegalInstrTrap)
     1893    pop     edx
     1894    pop     ecx
     1895    pop     eax
     1896%endif
     1897
    18831898    add     dword [ss:edx], 4                   ; pop return address from the PATM stack (sizeof(RTGCPTR); @note hardcoded assumption!)
    18841899
     
    19251940
    19261941    add     eax, PATM_PATCHBASE
     1942
     1943%ifdef PATM_LOG_IF_CHANGES
     1944    push    eax
     1945    push    ecx
     1946    push    edx
     1947    mov     edx, eax                            ; return address
     1948    lock    or dword [ss:PATM_PENDINGACTION], PATM_ACTION_LOG_RET
     1949    mov     eax, PATM_ACTION_LOG_RET
     1950    mov     ecx, PATM_ACTION_MAGIC
     1951    db      0fh, 0bh        ; illegal instr (hardcoded assumption in PATMHandleIllegalInstrTrap)
     1952    pop     edx
     1953    pop     ecx
     1954    pop     eax
     1955%endif
     1956
    19271957    pop     edi
    19281958    pop     edx
     
    19471977    DD      0
    19481978    DD      PATMRetFunction_End - PATMRetFunction_Start
     1979%ifdef PATM_LOG_IF_CHANGES
     1980    DD      9
     1981%else
    19491982    DD      7
     1983%endif
    19501984    DD      PATM_STACKPTR
    19511985    DD      0
     
    19581992    DD      PATM_PATCHBASE
    19591993    DD      0
     1994%ifdef PATM_LOG_IF_CHANGES
    19601995    DD      PATM_PENDINGACTION
    19611996    DD      0
     1997%endif
     1998    DD      PATM_PENDINGACTION
     1999    DD      0
    19622000    DD      PATM_PATCHBASE
    19632001    DD      0
     2002%ifdef PATM_LOG_IF_CHANGES
     2003    DD      PATM_PENDINGACTION
     2004    DD      0
     2005%endif
    19642006    DD      0ffffffffh
    19652007
  • trunk/src/VBox/VMM/PATM/PATMA.h

    r23 r110  
    8787#define PATM_ACTION_LOG_PUSHF                   8
    8888#define PATM_ACTION_LOG_IRET                    9
     89#define PATM_ACTION_LOG_RET                     10
    8990
    9091/* Magic dword found in ecx for patm pending actions. */
  • trunk/src/VBox/VMM/PATM/PATMA.mac

    r19 r110  
    8686%define PATM_ACTION_LOG_PUSHF                   8
    8787%define PATM_ACTION_LOG_IRET                    9
     88%define PATM_ACTION_LOG_RET                     10
    8889
    8990;/* Magic dword found in ecx for patm pending actions. */
  • trunk/src/VBox/VMM/PATM/VMMAll/PATMAll.cpp

    r90 r110  
    589589                pRegFrame->eip += PATM_ILLEGAL_INSTR_SIZE;
    590590                return VINF_SUCCESS;
     591
     592            case PATM_ACTION_LOG_RET:
     593                Log(("PATMHandleIllegalInstrTrap: RET to %VGv\n", pRegFrame->edx));
     594                pRegFrame->eip += PATM_ILLEGAL_INSTR_SIZE;
     595                return VINF_SUCCESS;
    591596#endif
    592597            default:
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