remote-gdb: * use sysroot instead of solib search paths * don't query arch if there's only one choice

SVN-Revision: 20290
This commit is contained in:
Jo-Philipp Wich 2010-03-18 21:10:56 +00:00
parent 706b6b846f
commit 029b3f62ab

View file

@ -33,13 +33,20 @@ if( opendir SD, "$Bin/../staging_dir" )
}
}
# Query arch
do {
print("Target? > ");
chomp($tid = <STDIN>);
} while( !defined($tid) || $tid !~ /^\d+$/ || $tid < 1 || $tid > @arches );
if( @arches > 1 )
{
# Query arch
do {
print("Target? > ");
chomp($tid = <STDIN>);
} while( !defined($tid) || $tid !~ /^\d+$/ || $tid < 1 || $tid > @arches );
($arch, $libc) = @{$arches[$tid-1]};
($arch, $libc) = @{$arches[$tid-1]};
}
else
{
($arch, $libc) = @{$arches[0]};
}
}
closedir SD;
@ -47,18 +54,14 @@ if( opendir SD, "$Bin/../staging_dir" )
# Find gdb
my ($gdb) = glob("$Bin/../build_dir/toolchain-${arch}_*_${libc}/gdb-*/gdb/gdb");
if( -x $gdb )
if( defined($gdb) && -x $gdb )
{
my ( $fh, $fp ) = tempfile();
# Find library paths
my $libdirs = join ':', (
glob("$Bin/../staging_dir/target-${arch}_${libc}/root-*/{,usr/}lib/"),
glob("$Bin/../staging_dir/target-${arch}_${libc}/{,usr/}lib/"),
glob("$Bin/../staging_dir/toolchain-${arch}_*_${libc}/lib/")
);
# Find sysroot
my ($sysroot) = glob("$Bin/../staging_dir/target-${arch}_${libc}/root-*/");
print $fh "set solib-search-path $libdirs\n";
print $fh "set sysroot $sysroot\n" if $sysroot;
print $fh "target remote $ARGV[0]\n";
system($gdb, '-x', $fp, $ARGV[1]);