joncampbell123 / dosbox-x

DOSBox-X fork of the DOSBox project
GNU General Public License v2.0
2.62k stars 374 forks source link

conditional breakpoint #3185

Open leslietoo opened 2 years ago

leslietoo commented 2 years ago

Code of Conduct & Contributing Guidelines

Have you checked that no other similar feature request(s) already exists?

Is your feature request related to a problem? Please describe.

When hacking a game, it's a very common need to set conditional breakpoints, but dosbox-x debugger doesn't support it, so every time I have to get my old dos machine out of box then run softice or DeGlucker debugger on it so that their conditional breakpoints could work for me, after real dos machine debugging then back to dosbox-x debugger to continue my hacking( I prefer to dosbox-x debugger because it won't cover my game and can deal with protected mode games), it's annoying...

What you want

support conditional breakpoints like SoftICE or DeGlucker debugger or Turbo Debugger, whatever

Describe alternatives you've considered

No response

Additional context

No response

Wengier commented 2 years ago

Can you show some examples for conditional breakpoints you want to use for the debugger?

leslietoo commented 2 years ago

Can you show some examples for conditional breakpoints you want to use for the debugger?

Well, I attached the DeGlucker debugger's user manual and a picture for cond breakpoint part of it. the condition format is very simple. DeGlucker DG_ENG.TXT

The condition I usually use is like: ax==3bh or multi-expression like: [bx+si+3]>=555h & (ss:[6f30h] != 0 | ax<3bh) just like that. I really like DeGlucker, powerful and convenient, can pop-up under almost all games by hotkey, only shortcoming is no protected-mode support :( ... and it can be used in dosbox-x, but the hardware breakpoint function doesn't work so I submit another feature request https://github.com/joncampbell123/dosbox-x/issues/3186

By the way, I know you're the head of China Dos Union, and I am Chinese too, really appreciate your effort, hope dosbox-x get better and better

leslietoo commented 2 years ago

If you read DeGlucker manual, you should switch the code page to 850 like below (UltraEdit) because it contains some east European chars which show mess if not decoded with 850 code page. DeGlucker2

Wengier commented 2 years ago

@leslietoo Thanks for showing the conditional breakpoint. It is indeed pretty powerful and flexible, although will require some work to implement. The builtin debugger currently does support simpler syntax for setting breakpoints, e.g. BPINT 21 3B for INT21h/AX=3Bh. It will be more powerful if it supports BPIF command for conditional breakpoint, e.g. BPIF ax==3bh & …

leslietoo commented 2 years ago

May I ask about the process of this feature? Some good news?