VOGONS


First post, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

As a certified newbie I am trying to understand how the DOSBox Debugger works - and I am confused 😕

According to Fizzban´s guide:

  • F10 steps over the next instruction (does not trace into calls)
  • F11 traces into the next instruction

I expected that F11 would allow me to single-step each emulated CPU instruction as displayed in the code view window, but I can not make head nor tail of the why the EIP is jumping all over the place 😠

Example: I press PAUSE/BREAK, and the code view shows:

0045:723A4  8A03             mov  al,[ebx]               ds:[001A2A6A]=030C0
0045:723A6 43 inc ebx
0045:723A7 33C9 xor ecx,ecx
0045:723A9 FF24852C620E00 jmp near dword [000E622C+eax*4](down)
0045:723B0 80F201 xor dl,01

When I press F11 I expect the 'mov al,[ebx]' instruction (highlighted in the code view with green) to be excuted and the EIP to move to the next instruction ('inc ebx').

But instead I end up at 0045:7248B which reads:

0045:7248B  41               inc  ecx
0045:7248C 41 inc ecx
0045:7248D 41 inc ecx
0045:7248E 41 inc ecx
0045:7248F D1E1 shl ecx,1

Again, I would expect an F11 to do the increment and move the EIP to 0045:7248C, but NOOOO!!!! The next instruction is a 'repe movsw' at 0045:724BC 😕

I am not prone to swearing, but I really feel like saying WTF is going on here?

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32

Reply 1 of 2, by trioptimum

User metadata
Rank Newbie
Rank
Newbie

Some virii and other programs (like Second Reality) can do very nasty things by redirecting int 1, the trace interruption. If the trap flag (TF) is set, they can execute the int 1 handler for every instruction. Alternatively, are you using dynamic core? Debugging in dynamic core works block by block, not instruction by instruction 😀

Reply 2 of 2, by MiniMax

User metadata
Rank Moderator
Rank
Moderator

Thanks tri! I was using Dynamic Core 😀 Changed it to Normal, and F11 works as expected.

DOSBox 60 seconds guide | How to ask questions
_________________
Lenovo M58p | Core 2 Quad Q8400 @ 2.66 GHz | Radeon R7 240 | LG HL-DT-ST DVDRAM GH40N | Fedora 32