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