tech-kern archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Hardcoded breakpoints vs. DDB

I'm fixing sh3 ddb and I can't seem to wrap my head around how
hardcoded breakpoints are supposed to be handled by DDB.

If there's a BKPT_INST already present in the text (and there's at
least one such - the one in cpu_Debugger), how MD parts of DDB are
supposed to tell it from the one inserted by DDB for a breakpoint?
DDB restores real instructions at breakpoints only after MD code has
run, so MD code cannot look at the instruction itself (it will always

I gather those case -1 "keyboard interrupt" labels in kdb_trap are
supposed to handle BKPT_INST in cpu_Debugger() and I guess some other
means are used to distinguish it from dynamic breakpoints (instruction

I don't see reasons to preclude hardcoded breakpoints.  While in C
code you can always call cpu_Debugger(), in asm code it's easier to
just add the breakpoint instruction instead of going through the
hassle of calling a function (which can also ruin your neatly arranged
register usage in a leaf routine).

For sh3 I can always use a different trap code so that hardcoded traps
are not recognized as breakpoints, but that feels lie a kludge.

Can anyone comment on this?

SY, Uwe
--                       |       Zu Grunde kommen          |       Ist zu Grunde gehen

Home | Main Index | Thread Index | Old Index