This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On Fri, Feb 22, 2013 at 12:35 AM, Tom Tromey <tromey@redhat.com> wrote: >>>>>> "Yao" == Yao Qi <yao@codesourcery.com> writes: > > Yao> The printf stuff is implemented as command, it is convenient to move > Yao> them to the target side. I tried to change the bpstat saying that > Yao> "don't stop", but the command can't be executed. We have to keep > Yao> bpstat saying that "stop" for dprintf. I also thought about Tom's > Yao> suggestion about Python "Breakpoint.stop" API, but "Breakpoint.stop" > Yao> acts as condition instead of command, so I don't go that way. > > Pedro pointed out that 'stop' runs too early -- it makes "cond" not work > on a dprintf. (BTW if there is no test for this, there should be... ) > > But, why not just do the work just after the condition is evaluated? > For example, it could be done with special handling in > bpstat_check_breakpoint_conditions, or by introducing a new > check_condition breakpoint_ops method, with the dprintf method calling > the super method before proceeding to "printf" and then returning 0. > > I tend to think that the "commands" approach is just not a good one. > > Tom Hi Tom, I update this patch according to your comments: Add after_cond to breakpoint_ops and let bpstat_stop_status call it after cond check. Then add normal code to base_breakpoint_after_cond handle setup of other breakpoints and set dprintf special code to dprintf_after_cond that do print work. And I also updated test for this change. Please help me review it. Thanks, Hui 2013-04-23 Yao Qi <yao@codesourcery.com> Hui Zhu <hui@codesourcery.com> PR gdb/15075 * breakpoint.c (bpstat_stop_status): Call b->ops->after_cond. (update_dprintf_command_list): Don't append "continue" command to the command of dprintf breakpoint. (base_breakpoint_after_cond): New. (base_breakpoint_ops): Add base_breakpoint_after_cond. (dprintf_after_cond): New. (initialize_breakpoint_ops): Set dprintf_after_cond. * breakpoint.h (breakpoint_ops): Add after_cond. 2013-04-23 Hui Zhu <hui@codesourcery.com> PR gdb/15075 * gdb.base/dprintf.exp: Remove "continue" from "info breakpoint" test.
Attachment:
dprintf-continue.txt
Description: Text document
Attachment:
dprintf-continue-test.txt
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |