Re: [RFA 3/3] Document 'set|show exec-file-mismatch (reload|warn|off)'

Christian Biesinger via gdb-patches
2019-12-22T02:46:45Z

On Sat, Dec 21, 2019, 09:37 Philippe Waroquiers <
philippe.waroquiers@skynet.be> wrote:

> Mention in NEWS the new option and the set/show commands.
>
> Document in gdb.texinfo the new option and the set/show commands.
>

When would someone set this to off, or even warn? I'm wondering is it makes
sense to add this setting vs always having the reload behavior?

> gdb/ChangeLog
> YYYY-MM-DD Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * NEWS: Mention the new option and the set/show commands.
>
> gdb/doc/ChangeLog
> YYYY-MM-DD Philippe Waroquiers <philippe.waroquiers@skynet.be>
>
> * gdb.texinfo (Attach): Document the new option and the
> set/show commands.
> (Connecting): Reference the exec-file-mismatch option.
> ---
> gdb/NEWS | 12 ++++++++++++
> gdb/doc/gdb.texinfo | 31 +++++++++++++++++++++++++++++++
> 2 files changed, 43 insertions(+)
>
> diff --git a/gdb/NEWS b/gdb/NEWS
> index ee10914fd8..1a90862b0d 100644
> --- a/gdb/NEWS
> +++ b/gdb/NEWS
> @@ -3,6 +3,18 @@
>
> *** Changes since GDB 9
>
> +* New commands
> +
> +set exec-file-mismatch -- Set exec-file-mismatch handling
> (reload|warn|off).
> +show exec-file-mismatch -- Show exec-file-mismatch handling
> (reload|warn|off).
> + Set or show the option 'exec-file-mismatch'. When GDB attaches to
> + a running program and can determine the running program, this new option
> + indicates how to handle a mismatch between the current exec-file and
> + the automatically detected file.
> + 'reload' is the default value: in case of mismatch, GDB will warn the
> user
> + and reload the automatically determined file after user confirmation.
> +
> +
> *** Changes in GDB 9
>
> * 'thread-exited' event is now available in the annotations interface.
> diff --git a/gdb/doc/gdb.texinfo b/gdb/doc/gdb.texinfo
> index 4d25f755d7..a246ba0bf5 100644
> --- a/gdb/doc/gdb.texinfo
> +++ b/gdb/doc/gdb.texinfo
> @@ -2904,6 +2904,31 @@ the program is not found) by using the source file
> search path
> the @code{file} command to load the program. @xref{Files, ,Commands to
> Specify Files}.
>
> +@anchor{set exec-file-mismatch}
> +If the debugger can determine the program running in the process
> +and this program does not match the current exec-file, the option
> +@code{exec-file-mismatch} specifies how to handle the mismatch.
> +
> +@table @code
> +@kindex exec-file-mismatch
> +@cindex set exec-file-mismatch
> +@item set exec-file-mismatch @samp{reload|warn|off}
> +In case of mismatch between the current exec-file and the automatically
> +determined exec-file of the PID the debugger is attaching to,
> +@samp{reload} indicates to give a warning to the user and reload
> +the automatically determined exec-file. The user will be asked to
> +confirm the loading of the automatically determined file.
> +With @samp{warn}, @value{GDBN} just gives a warning to the user to
> +signal the mismatch. @samp{off} indicates to not check for mismatch.
> +The default value is @samp{reload}.
> +
> +
> +@cindex show exec-file-mismatch
> +@item show exec-file-mismatch
> +Show the current value of @code{exec-file-mismatch}.
> +
> +@end table
> +
> The first thing @value{GDBN} does after arranging to debug the specified
> process is to stop it. You can examine and modify an attached process
> with all the @value{GDBN} commands that are ordinarily available when
> @@ -21780,6 +21805,12 @@ established. If you are using @code{gdbserver},
> you may also invoke
> @code{gdbserver} using the @option{--attach} option
> (@pxref{Running gdbserver}).
>
> +Some remote targets allow @value{GDBN} to determine the program running
> +in the process the debugger is attaching to. In such a case, @value{GDBN}
> +uses the value of @code{exec-file-mismatch} to handle a possible mismatch
> +between the program running in the process and the current exec-file.
> +(@pxref{set exec-file-mismatch}).
> +
> @end table
>
> @anchor{Host and target files}
> --
> 2.20.1
>
>