This is the mail archive of the
mailing list for the GDB project.
Re: How GDB knows a breakpoint is hit?
- From: Hui Zhu <teawater at gmail dot com>
- To: kceiwH <kceiwh at gmail dot com>
- Cc: gdb at sourceware dot org
- Date: Thu, 20 Aug 2009 14:52:28 +0800
- Subject: Re: How GDB knows a breakpoint is hit?
- References: <84D22DD1-F4AD-4985-A0EC-AF3B53774D10@gmail.com>
I think you can read the code around function bpstat_what.
On Wed, Aug 19, 2009 at 23:28, kceiwH <email@example.com> wrote:
> I wonder how GDB knows it should stop the inferior when a breakpoint is hit. I try to read the code but only to find how GDB creates a breakpoint. I thought GDB might change some instructions of inferior so that when the inferior executes the modified instructions, GDB should know. But what the function "create_breakpoint" does is to add a breakpoint to the list "breakpoint_chain". It is not what I thought. So I am confused. Does GDB monitor each instruction of the inferior and check whether there is a breakpoint and stop the inferior before the instruction is executed? If so, how GDB monitor the inferior? And it will be too slow. Could anybody tell how GDB handle it and plus the codes. Thanks in advance.