This is the mail archive of the gdb-patches@sourceware.org mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH 1/2] Change gdb_load_shlibs to gdb_load_shlib


On 04/13/2016 12:14 AM, Simon Marchi wrote:
> Note: this series should be applied on top of
>   https://sourceware.org/ml/gdb-patches/2016-04/msg00252.html
> 
> -------
> 
> This patch renames gdb_load_shlibs to gdb_load_shlib, and changes its
> arguments so that it can only take a single library at the time.
> 
> The following patch requires to be able to get the destination path of a
> loaded shared library, so it's more straightforward if the procedure can
> only accept one argument.
> 
> On top of the mass renaming, there are a handful of locations where I
> had to split up a gdb_load_shlibs in two gdb_load_shlib.
> 

I'd have been nicer and more focused if you split this in two:

 #1 - make gdb_load_shlibs accept only one shlib.
 #2 - do the trivial mass rename.

> -proc gdb_load_shlibs { args } {
> -    foreach file $args {
> -	gdb_remote_download target [shlib_target_file $file]
> -    }
> +proc gdb_load_shlib { file } {
> +    set dest [gdb_remote_download target [shlib_target_file $file]]
>  
>      if {[is_remote target]} {
>  	# If the target is remote, we need to tell gdb where to find the
> @@ -4237,8 +4235,10 @@ proc gdb_load_shlibs { args } {
>  	# We could set this even when not testing remotely, but a user
>  	# generally won't set it unless necessary.  In order to make the tests
>  	# more like the real-life scenarios, we don't set it for local testing.
> -	gdb_test "set solib-search-path [file dirname [lindex $args 0]]" "" ""
> +	gdb_test "set solib-search-path [file dirname [lindex $file 0]]" "" ""

$file is no longer a list, so [lindex $file 0] can just be $file.

With:

 gdb_load_shlib $libobj1
 gdb_load_shlib $libobj2

We'll now only end up with $libobj2's dirname in the solib-search-path.
This usually won't be a problem since the dirnames will be the same,
though I guess some test might be doing something with subdirs.
Grepping a bit I found solib-search.exp, though it's currently disabled
on remote testing.

Do we need to maintain a list of dirnames, and clear it somewhere?

Thanks,
Pedro Alves


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]