[PATCH v2 1/1] Notify observers that directories have changed when using "directory" CLI command

Andrew Burgess andrew.burgess@embecosm.com
Thu Oct 8 13:05:29 GMT 2020


* Jan Vrany via Gdb-patches <gdb-patches@sourceware.org> [2020-10-06 12:08:09 +0100]:

> gdb/ChangeLog
> 
> 	* source.c (directory_command): Notify observers that "directories"
> 	parameter has changed.
> 
> gdb/testsuite/ChangeLog
> 
> 	* gdb.mi/mi-cmd-param-changed.exp: Check that notification is
> 	is emmited for both 'set directories' and 'directory'
> 	commands.

This looks great, thanks, with just one very minor nit..

> ---
>  gdb/ChangeLog                                 |  5 +++++
>  gdb/source.c                                  | 11 +++++++++--
>  gdb/testsuite/ChangeLog                       |  5 +++++
>  gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp | 13 +++++++++++++
>  4 files changed, 32 insertions(+), 2 deletions(-)
> 
> diff --git a/gdb/ChangeLog b/gdb/ChangeLog
> index 9c802c57ef..1d8ff2f83d 100644
> --- a/gdb/ChangeLog
> +++ b/gdb/ChangeLog
> @@ -1,3 +1,8 @@
> +2020-10-06  Jan Vrany  <jan.vrany@labware.com>
> +
> +	* source.c (directory_command): Notify observers that "directories"
> +	parameter has changed.
> +
>  2020-09-29  Tom Tromey  <tom@tromey.com>
>  
>  	* dwarf2/read.c (lookup_dwo_id, get_type_unit_group)
> diff --git a/gdb/source.c b/gdb/source.c
> index 0c2b5a4f83..a73a31f644 100644
> --- a/gdb/source.c
> +++ b/gdb/source.c
> @@ -446,6 +446,7 @@ init_source_path (void)
>  static void
>  directory_command (const char *dirname, int from_tty)
>  {
> +  bool value_changed = false;
>    dont_repeat ();
>    /* FIXME, this goes to "delete dir"...  */
>    if (dirname == 0)
> @@ -454,15 +455,21 @@ directory_command (const char *dirname, int from_tty)
>  	{
>  	  xfree (source_path);
>  	  init_source_path ();
> +	  value_changed = true;
>  	}
>      }
>    else
>      {
>        mod_path (dirname, &source_path);
>        forget_cached_source_info ();
> +      value_changed = true;
> +    }
> +  if (value_changed)
> +    {
> +      gdb::observers::command_param_changed.notify ("directories", source_path);
> +      if (from_tty)
> +	show_directories_1 ((char *) 0, from_tty);
>      }
> -  if (from_tty)
> -    show_directories_1 ((char *) 0, from_tty);
>  }
>  
>  /* Add a path given with the -d command line switch.
> diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
> index 2046c9b8e6..68e9c3204f 100644
> --- a/gdb/testsuite/ChangeLog
> +++ b/gdb/testsuite/ChangeLog
> @@ -1,3 +1,8 @@
> +2020-10-06  Jan Vrany  <jan.vrany@labware.com>
> +
> +	* gdb.mi/mi-cmd-param-changed.exp: Check that notification is
> +	is emmited for both 'set directories' and 'directory' commands.
> +
>  2020-09-30  Gary Benson <gbenson@redhat.com>
>  
>  	* gdb.dwarf2/dw2-double-set-die-type.S (.Ldie_3e0):
> diff --git a/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp b/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
> index 031d396dba..bd619d254d 100644
> --- a/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
> +++ b/gdb/testsuite/gdb.mi/mi-cmd-param-changed.exp
> @@ -102,6 +102,19 @@ proc test_command_param_changed { } {
>  	    ".*=cmd-param-changed,param=\"check type\",value=\"on\".*\\^done" \
>  	    "\"set ch type on\""
>  
> +	# Notification is emitted for both 'set directories' and 'directory'.
> +	mi_gdb_test "set directories \$cdir:\$cwd:/tmp" \
> +	    ".*=cmd-param-changed,param=\"directories\",value=\".*\".*\\^done" \
> +	    "\"set directories \$cdir:\$cwd:/tmp\""
> +	mi_gdb_test "directory /usr/src/gdb" \
> +	    ".*=cmd-param-changed,param=\"directories\",value=\".*\".*\\^done" \
> +	    "\"directory /usr/src/gdb\""
> +	mi_gdb_test "directory" \
> +	    ".*=cmd-param-changed,param=\"directories\",value=\".*\".*\\^done" \
> +	    "\"directory\""
> +
> +
> +

I think only one blank line is needed here.

With that fixed you can commit this.

Thanks,
Andrew



>  	mi_gdb_exit
>      }
>  }
> -- 
> 2.28.0
> 


More information about the Gdb-patches mailing list