Re: [PATCH v8] gdb: Add source-tracking breakpoints feature
Alexandra Petlanova Hajkova <[email protected]>
| Newsgroups | gmane.comp.gdb.patches |
|---|---|
| Message-ID | <CAJVr-ENHVQYhOtuSMYpJ5vtKN4711KeJd0ssAQ3WY_xgJP6+YA@mail.gmail.com> |
On Tue, Jul 14, 2026 at 2:41 PM Eli Zaretskii <[email protected]> wrote: > > From: Alexandra Hájková <[email protected]> > > Cc: [email protected] > > Date: Tue, 14 Jul 2026 11:40:52 +0200 > > > > > > gdb/NEWS | 14 + > > gdb/breakpoint.c | 487 ++++++++++++++++++ > > gdb/breakpoint.h | 16 +- > > gdb/doc/gdb.texinfo | 45 ++ > > .../gdb.base/adjust_breakpoint-2.cpp | 39 ++ > > .../gdb.base/adjust_breakpoint-3.cpp | 41 ++ > > .../gdb.base/adjust_breakpoint-4.cpp | 37 ++ > > .../adjust_breakpoint-missing-source.exp | 55 ++ > > gdb/testsuite/gdb.base/adjust_breakpoint.cpp | 40 ++ > > gdb/testsuite/gdb.base/adjust_breakpoint.exp | 168 ++++++ > > .../gdb.base/source-tracking-inline-1.c | 50 ++ > > .../gdb.base/source-tracking-inline-2.c | 49 ++ > > .../gdb.base/source-tracking-inline.exp | 80 +++ > > gdb/testsuite/gdb.base/test_source_tracking.c | 18 + > > .../gdb.base/test_source_tracking.exp | 43 ++ > > 15 files changed, 1181 insertions(+), 1 deletion(-) > > create mode 100644 gdb/testsuite/gdb.base/adjust_breakpoint-2.cpp > > create mode 100644 gdb/testsuite/gdb.base/adjust_breakpoint-3.cpp > > create mode 100644 gdb/testsuite/gdb.base/adjust_breakpoint-4.cpp > > create mode 100644 > gdb/testsuite/gdb.base/adjust_breakpoint-missing-source.exp > > create mode 100644 gdb/testsuite/gdb.base/adjust_breakpoint.cpp > > create mode 100644 gdb/testsuite/gdb.base/adjust_breakpoint.exp > > create mode 100644 gdb/testsuite/gdb.base/source-tracking-inline-1.c > > create mode 100644 gdb/testsuite/gdb.base/source-tracking-inline-2.c > > create mode 100644 gdb/testsuite/gdb.base/source-tracking-inline.exp > > create mode 100644 gdb/testsuite/gdb.base/test_source_tracking.c > > create mode 100644 gdb/testsuite/gdb.base/test_source_tracking.exp > > Thanks. > > > diff --git a/gdb/NEWS b/gdb/NEWS > > index ec9b5a33787..553d8c49ff6 100644 > > --- a/gdb/NEWS > > +++ b/gdb/NEWS > > @@ -6,6 +6,13 @@ > > * Support for the Common Trace Format (CTF) has been removed. GDB now > > saves trace information exclusively in its own "tfile" format. > > > > +* GDB now supports source-tracking breakpoints, which automatically > > + adjust their location when source code changes between rebuilds. > > + When enabled, file and line breakpoints capture the surrounding > > + source code context and use it to adjust the breakpoint line if the > > + source is modified. Source tracking can be enabled with 'set > > + breakpoint source-tracking enabled on'. > > This part is okay, but is this feature available in all builds of GDB? > For example, is the availability of the 'compile' command or being > able to rebuild the program while the GDB session is active necessary > for this to work? > > If there are preconditions, we should mention them, so users won't > expect this to work where it isn't supported. > > > +set breakpoint source-tracking enabled [on|off] > > +show breakpoint source-tracking enabled > > + Enable or disable source-tracking for file and line breakpoints. > > + When enabled, breakpoints capture surrounding source code and > > + automatically adjust their location when the source changes between > > + recompilations. > > Why aren't the maintenance commands you add called out in NEWS? > > > diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo > > index a698b2b8451..d304f885def 100644 > > --- a/gdb/doc/gdb.texinfo > > +++ b/gdb/doc/gdb.texinfo > > This part is okay. > > Reviewed-By: Eli Zaretskii <[email protected]> > Hi Eli, This feature works in all GDB builds, it only requires that source files are accessible and the binary was compiled with debug info (line numbers). No special dependencies like `compile` are needed. The maintenance command will be added to NEWS in the next version, thanks for catching that. Thank you, Alexandra