summaryrefslogtreecommitdiff
path: root/src/VBox/VMM/VMMR3/DBGFStack.cpp
diff options
context:
space:
mode:
authorvboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2012-07-30 15:10:30 +0000
committervboxsync <vboxsync@cfe28804-0f27-0410-a406-dd0f0b0b656f>2012-07-30 15:10:30 +0000
commit4f233dcb4119a97e0713289fc388413fca5d23a7 (patch)
tree870baa5fd3b2f1828357958f375aa6522d36632b /src/VBox/VMM/VMMR3/DBGFStack.cpp
parentd0c6b57a1fa5386e78775095ccaa26906dcbe428 (diff)
downloadVirtualBox-svn-4f233dcb4119a97e0713289fc388413fca5d23a7.tar.gz
DBGFStack.cpp: Forced it to work with hypervisor stacks again (the selector turns out a bit weird, but we get something out of it).
git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@42449 cfe28804-0f27-0410-a406-dd0f0b0b656f
Diffstat (limited to 'src/VBox/VMM/VMMR3/DBGFStack.cpp')
-rw-r--r--src/VBox/VMM/VMMR3/DBGFStack.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/VBox/VMM/VMMR3/DBGFStack.cpp b/src/VBox/VMM/VMMR3/DBGFStack.cpp
index b3b325932dd..f74ad4a4dd4 100644
--- a/src/VBox/VMM/VMMR3/DBGFStack.cpp
+++ b/src/VBox/VMM/VMMR3/DBGFStack.cpp
@@ -299,6 +299,8 @@ static DECLCALLBACK(int) dbgfR3StackWalkCtxFull(PVM pVM, VMCPUID idCpu, PCCPUMCT
int rc = VINF_SUCCESS;
if (pAddrPC)
pCur->AddrPC = *pAddrPC;
+ else if (enmCodeType != DBGFCODETYPE_GUEST)
+ DBGFR3AddrFromFlat(pVM, &pCur->AddrPC, pCtxCore->rip);
else
rc = DBGFR3AddrFromSelOff(pVM, idCpu, &pCur->AddrPC, pCtxCore->cs.Sel, pCtxCore->rip);
if (RT_SUCCESS(rc))
@@ -339,11 +341,15 @@ static DECLCALLBACK(int) dbgfR3StackWalkCtxFull(PVM pVM, VMCPUID idCpu, PCCPUMCT
if (pAddrStack)
pCur->AddrStack = *pAddrStack;
+ else if (enmCodeType != DBGFCODETYPE_GUEST)
+ DBGFR3AddrFromFlat(pVM, &pCur->AddrStack, pCtxCore->rsp & fAddrMask);
else
rc = DBGFR3AddrFromSelOff(pVM, idCpu, &pCur->AddrStack, pCtxCore->ss.Sel, pCtxCore->rsp & fAddrMask);
if (pAddrFrame)
pCur->AddrFrame = *pAddrFrame;
+ else if (enmCodeType != DBGFCODETYPE_GUEST)
+ DBGFR3AddrFromFlat(pVM, &pCur->AddrFrame, pCtxCore->rbp & fAddrMask);
else if (RT_SUCCESS(rc))
rc = DBGFR3AddrFromSelOff(pVM, idCpu, &pCur->AddrFrame, pCtxCore->ss.Sel, pCtxCore->rbp & fAddrMask);
}