Emulator Issues #13306
closedInstruction breakpoints do not work on JIT Recompiler when debugging UI is disabled
0%
Description
Game Name?
N/A
Game ID? (right click the game in the game list, Properties, Info tab)
N/A
MD5 Hash? (right click the game in the game list, Properties, Verify tab, Verify Integrity button)
N/A
What's the problem? Describe what went wrong.
Instruction breakpoints do not function on JIT Recompiler.
What steps will reproduce the problem?
- Set "CPU Emulation Engine" to "JIT Recompiler for x86-64 (recommended)"
- Start any game
- Find the address of any piece of code that you know for sure will execute. (An easy way is to find the address for something like current health using Dolphin Memory Editor, set a memory breakpoint for writes to that address, then take damage and get the memory address of the code from the log.)
- Set an instruction breakpoint for that instruction.
- Perform the action that causes that instruction to run. The breakpoint will not trigger.
Is the issue present in the latest development version? For future reference, please also write down the version number of the latest development version.
Yes, 5.0-19804
Is the issue present in the latest stable version?
What's a stable version? I only know about dev, beta, and legacy versions.
If the issue isn't present in the latest stable version, which is the first broken version? (You can find the first broken version by bisecting. Windows users can use the tool https://forums.dolphin-emu.org/Thread-green-notice-development-thread-unofficial-dolphin-bisection-tool-for-finding-broken-builds and anyone who is building Dolphin on their own can use git bisect.)
N/A
If your issue is a graphical issue, please attach screenshots and record a three frame fifolog of the issue if possible. Screenshots showing what it is supposed to look like from either console or older builds of Dolphin will help too. For more information on how to use the fifoplayer, please check here: https://wiki.dolphin-emu.org/index.php?title=FifoPlayer
N/A
What are your PC specifications? (CPU, GPU, Operating System, more)
CPU: AMD Ryzen 7 3750H with Radeon Vega Mobile Gfx 2.30 GHz
GPU: NVIDIA GeForce GTX 1650
OS: Windows 10 Home 22H2
Is there anything else that can help developers narrow down the issue? (e.g. logs, screenshots,
configuration files, savefiles, savestates)
In Luigi's Mansion, the instruction to decrease health is located at 800b9524, and the memory address for Luigi's current health is located at 813468cc. (I used Luigi's Mansion for testing)
Updated by InfoManiac742 over 1 year ago
Update: this only happens when the debugging UI is disabled for some reason
Updated by pokechu22 over 1 year ago
I'm pretty sure that, for performance reasons, debugging-related features (including instruction and memory breakpoints) are disabled if the debugger is disabled. How are you setting a breakpoint with the debugger disabled? Disabling it hides not only the code tab, but also the breakpoints tab and the options to enable those tabs, so I don't know how you could set one.
(My understanding is that it's disabled when the "show debugging UI" checkbox is unchecked; you should still be able to use it if you check "show debugging UI" and then close the code tab.)
Updated by InfoManiac742 over 1 year ago
I've been right-clicking the grey bar at the top and clicking "Breakpoints", regardless of whether or not the debugging UI is enabled.
Updated by pokechu22 over 1 year ago
Ah, I guess there's an oversight there - it looks like the debugger-related options are hidden from the view menu when the debugging UI is disabled, but not from right-clicking on the toolbar. That should be easy to fix. I might also rename "Show debugging UI" to "Enable debugging UI" to make it more obvious that the option controls whether the widgets are usable.
(A related note: the debugging tabs are also hidden on startup when the debugger is disabled, but if it's enabled then they remember whether you had them open or not.)
Updated by pokechu22 over 1 year ago
- Subject changed from Instruction breakpoints do not work on JIT Recompiler to Instruction breakpoints do not work on JIT Recompiler when debugging UI is disabled
- Status changed from New to Working as intended
I've created two PRs to hopefully make this clearer in the future: https://github.com/dolphin-emu/dolphin/pull/12066 and https://github.com/dolphin-emu/dolphin/pull/12067.