Clone remote breakpoints
authorDon Breazeal <donb@codesourcery.com>
Tue, 12 May 2015 16:52:42 +0000 (09:52 -0700)
committerDon Breazeal <donb@codesourcery.com>
Tue, 12 May 2015 16:52:42 +0000 (09:52 -0700)
commitddcbc3975fffffdb5bb3bfb05b1f0ef3d67be3ee
treeef70f3dbf4d36a597ee639900da058be5b2a806f
parent89245bc05692aaa107fa2884c032da21682edc72
Clone remote breakpoints

This patch implements gdbserver routines to clone the breakpoint lists of a
process, duplicating them for another process.  In gdbserver, each process
maintains its own independent breakpoint list.  When a fork call creates a
child, all of the breakpoints currently inserted in the parent process are
also inserted in the child process, but there is nothing to describe them
in the data structures related to the child.  The child must have a
breakpoint list describing them so that they can be removed (if detaching)
or recognized (if following).  Implementation is a mechanical process of
just cloning the lists in several new functions in gdbserver/mem-break.c.

Tested by building, since none of the new functions are called yet.  This
was tested with another patch in the series that implements follow-fork.

gdb/gdbserver/ChangeLog:

        * mem-break.c (APPEND_TO_LIST): Define macro.
        (clone_agent_expr): New function.
        (clone_one_breakpoint): New function.
        (clone_all_breakpoints): New function.
        * mem-break.h: Declare new functions.
gdb/gdbserver/ChangeLog
gdb/gdbserver/mem-break.c
gdb/gdbserver/mem-break.h