|
@@ -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]);
|