summaryrefslogtreecommitdiff
path: root/Source/Core/DebuggerWX/Src/JitWindow.cpp
diff options
context:
space:
mode:
authorhrydgard <hrydgard@gmail.com>2008-12-19 22:21:29 +0000
committerhrydgard <hrydgard@gmail.com>2008-12-19 22:21:29 +0000
commit347fc18542971bdb973870befd198cbab703d42c (patch)
treef5a3a8601800648d342a355af4d4b8460cfe3576 /Source/Core/DebuggerWX/Src/JitWindow.cpp
parentcd62fc5c0c2d13b164e17bef594f191aaa602743 (diff)
misc cleanup, bugfix for x86 display in jit window
git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@1596 8ced0084-cf51-0410-be5f-012b33b47a6e
Diffstat (limited to 'Source/Core/DebuggerWX/Src/JitWindow.cpp')
-rw-r--r--Source/Core/DebuggerWX/Src/JitWindow.cpp20
1 files changed, 17 insertions, 3 deletions
diff --git a/Source/Core/DebuggerWX/Src/JitWindow.cpp b/Source/Core/DebuggerWX/Src/JitWindow.cpp
index 4b8de3a64c..81c57e7328 100644
--- a/Source/Core/DebuggerWX/Src/JitWindow.cpp
+++ b/Source/Core/DebuggerWX/Src/JitWindow.cpp
@@ -141,12 +141,26 @@ void CJitWindow::Compare(u32 em_address)
int block_num = jit.GetBlockNumberFromAddress(em_address);
if (block_num < 0)
{
- ppc_box->SetValue(wxString::FromAscii(StringFromFormat("(non-code address: %08x)", em_address).c_str()));
- x86_box->SetValue(wxString::FromAscii(StringFromFormat("(no translation)").c_str()));
- return;
+ for (int i = 0; i < 500; i++) {
+ block_num = jit.GetBlockNumberFromAddress(em_address - 4 * i);
+ if (block_num >= 0)
+ break;
+ }
+ if (block_num >= 0) {
+ Jit64::JitBlock *block = jit.GetBlock(block_num);
+ if (!(block->originalAddress <= em_address && block->originalSize + block->originalAddress >= em_address))
+ block_num = -1;
+ }
+ // Do not merge this "if" with the above - block_num changes inside it.
+ if (block_num < 0) {
+ ppc_box->SetValue(wxString::FromAscii(StringFromFormat("(non-code address: %08x)", em_address).c_str()));
+ x86_box->SetValue(wxString::FromAscii(StringFromFormat("(no translation)").c_str()));
+ return;
+ }
}
Jit64::JitBlock *block = jit.GetBlock(block_num);
+ // 800031f0
// == Fill in x86 box
memset(xDis, 0, 65536);