Why gdb/gdbserver handler breakpoint on gdb client side (ARM)?

Paul_Koning@Dell.com Paul_Koning@Dell.com
Thu Jun 25 13:50:00 GMT 2015


> On Jun 24, 2015, at 9:22 PM, Fei Ding <fdingiit@gmail.com> wrote:
> 
> Hi.
> 
> Recently I am working on debugging a bug of gdb/gdbserver when setting
> breakpoints on ARM devices. I found that, gdb-client nearly do nothing
> about it when we use gdb/gdbserver on x86 platform, gdbserver do the
> dirty work in fact, including generate INT 3 instruction, read, save,
> and write memory, etc... But for ARM, this work is done on the
> gdb-client side, which is opposed to x86 case. Anyone know why? Or any
> thoughts?

Some targets have a “hardware breakpoint” or “software breakpoint” feature where the hardware or OS implements breakpoint support directly.  Others don’t.  If they don’t, then GDB just does the work by saving the original instruction, replacing it by a break, restoring the original when the breakpoint is hit, and so on.

Both work.  Why does it matter which approach is used?

	paul


More information about the Gdb mailing list