It's useful to be able to put a breakpoint on the *emission* of
a diagnostic (without having to step past all of the warnings
that are suppressed because of command-line options).

The invocation:

  (gdb) break diagnostic_show_locus

has been my approach for this for a while (it even works in
the presence of -fno-diagnostics-show-caret).

This patch adds a pre-canned gdb command for adding this
breakpoint.

Not sure if I can self-approve this, but it's been very useful;
it works nicely with tab-completion.  I guess I'll commit it
in a few days, unless people here can suggest improvements.

gcc/ChangeLog:
        * gdbinit.in (break-on-diagnostic): New command.
---
 gcc/gdbinit.in | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/gcc/gdbinit.in b/gcc/gdbinit.in
index 3e1279e..ebdeaf0 100644
--- a/gcc/gdbinit.in
+++ b/gcc/gdbinit.in
@@ -208,6 +208,16 @@ document pcfun
 Print current function.
 end
 
+define break-on-diagnostic
+break diagnostic_show_locus
+end
+
+document break-on-diagnostic
+Put a breakpoint on diagnostic_show_locus, called whenever a diagnostic
+is emitted (as opposed to those warnings that are suppressed by
+command-line options).
+end
+
 # Define some macros helpful to gdb when it is expanding macros.
 macro define __FILE__ "gdb"
 macro define __LINE__ 1
-- 
1.8.5.3

Reply via email to