[scripts] remote-gdb:
* use sysroot instead of solib search paths * don't query arch if there's only one choice git-svn-id: svn://svn.openwrt.org/openwrt/trunk@20290 3c298f89-4303-0410-b956-a3cf2f4a3e73master
parent
d34c50b9fc
commit
eb5d7e74b5
|
@ -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]);
|
||||
|
|
Loading…
Reference in New Issue