[PATCH v2] Skip vDSO when reading SO list (PR 8882)

Jan Kratochvil jan.kratochvil@redhat.com
Tue Sep 24 18:08:00 GMT 2013


On Tue, 24 Sep 2013 19:47:09 +0200, Andreas Arnez wrote:
> ChangeLog:
> 2013-09-24  Andreas Arnez  <arnez@linux.vnet.ibm.com>
> 

Add here line:
	PR shlibs/8882
> 	* solib-svr4.c (svr4_read_so_list): Skip the vDSO when reading
> 	link map entries.
> 
> testsuite/ChangeLog:
> 2013-09-24  Andreas Arnez  <arnez@linux.vnet.ibm.com>
> 

Add here line:
	PR shlibs/8882
> 	* gdb.base/corefile.exp: Add a check to assure warning-free
> 	core-file load.

OK to check it in with a little update below:


> @@ -1359,8 +1361,16 @@ svr4_read_so_list (CORE_ADDR lm, CORE_AD
>  			  SO_NAME_MAX_PATH_SIZE - 1, &errcode);
>        if (errcode != 0)
>  	{
> -	  warning (_("Can't read pathname for load map: %s."),
> -		   safe_strerror (errcode));
> +	  /* If this entry's l_name address matches that of the
> +	     inferior executable, then this is not a normal shared
> +	     object, but (most likely) a vDSO.  In this case, silently
> +	     skip it; otherwise emit a warning. */
> +	  if (! (first != NULL
> +		 && new->lm_info->l_name == first->lm_info->l_name))

Nested negations were not accepted for GDB before, therefore:
	  if (first == NULL
	      || new->lm_info->l_name != first->lm_info->l_name)

(I agree it had some logic but this was a general GDB list consensus.)


> +	    {

Excessive curly braces.


> +	      warning (_("Can't read pathname for load map: %s."),
> +		       safe_strerror (errcode));
> +	    }
>  	  do_cleanups (old_chain);
>  	  continue;
>  	}


Thanks,
Jan



More information about the Gdb-patches mailing list