Re: [hatari-devel] breakpoint on CALL_SUBRETURN condition doesn't work ? |
[ Thread Index |
Date Index
| More lists.tuxfamily.org/hatari-devel Archives
]
Le 04/04/2014 23:45, Eero Tamminen a écrit :
Hi,
On perjantai 04 huhtikuu 2014, Nicolas Pomarède wrote:
when using in the debugger "n subreturn", the program should run until a
RTS is seen for example.
But it never breaks, am I missing something (this is with old cpu core) ?
Eero, do you have a idea ?
Can you provide the disassembly (containing also opcodes)
from the instruction where you give the command to
the RTS instruction?
I do it at a random place to do my test : start hatari, and before gem
desktop appear, press alt+pause.
Then I type "n subreturn" ; there's obviously a RTS that will appear in
the TOS, so it should break quite soon, but it doesn't, it runs without
stoppping.
If I press alt+pause again, and type 'b', I see :
1 conditional CPU breakpoints:
1: CpuOpcodeType = 16 :once
"n subreturn" should create breakpoint:
CpuOpcodeType=%d :once :quiet
Where %d is code for CALL_SUBRETURN, which maps to:
Uint16 opcode = STMemory_ReadWord(M68000_GetPC());
if (opcode == 0x4e74 || /* RTD */
opcode == 0x4e75 || /* RTS */
opcode == 0x4e77) /* RTR */
return CALL_SUBRETURN;
Could you add some other breakpoint into middle and check
whether above breakpoint is set (with 'b' command)?
(code for above is in src/debug/debugcpu.c)
See above, the brakpoint is created it seems it just never triggers.
By the way, I think it could be useful to have a condition that breaks
on any return (sub return or exception return).
Nicolas