diff options
Diffstat (limited to 'scripts/remote-gdb')
| -rwxr-xr-x | scripts/remote-gdb | 10 | 
1 files changed, 6 insertions, 4 deletions
| diff --git a/scripts/remote-gdb b/scripts/remote-gdb index 49cdd1e22..380a22511 100755 --- a/scripts/remote-gdb +++ b/scripts/remote-gdb @@ -6,7 +6,7 @@ use FindBin '$Bin';  use File::Temp 'tempfile';  @ARGV == 2 || do { -	die "Usage: $0 <host:port> <executable>\n"; +	die "Usage: $0 <corefile|host:port> <executable>\n";  	exit 1;  }; @@ -14,7 +14,7 @@ if( opendir SD, "$Bin/../staging_dir" )  {  	my ( $tid, $arch, $libc, @arches ); -	if( $ARGV[1] =~ m!\btarget-(.+?)_([^_]+libc[^_/]+)\b!i ) +	if( $ARGV[1] =~ m!\btarget-(.+?)_(([^_]+libc|musl)[^/]+)\b!i )  	{  		print("Using target $1 ($2)\n");  		($arch, $libc) = ($1, $2); @@ -26,7 +26,7 @@ if( opendir SD, "$Bin/../staging_dir" )  		while( defined( my $e = readdir SD ) )  		{ -			if( -d "$Bin/../staging_dir/$e" && $e =~ /^target-(.+?)_([^_]+libc[^_]+)/i ) +			if( -d "$Bin/../staging_dir/$e" && $e =~ /^target-(.+?)_(([^_]+.libc|musl)+)/i )  			{  				push @arches, [ $1, $2 ];  				printf(" %2d) %s (%s)\n", @arches + 0, $1, $2); @@ -61,7 +61,9 @@ if( opendir SD, "$Bin/../staging_dir" )  		my ($sysroot) = glob("$Bin/../staging_dir/target-${arch}_${libc}/root-*/");  		print $fh "set sysroot $sysroot\n" if $sysroot; -		print $fh "target remote $ARGV[0]\n"; +		my $cmd = "target remote"; +		-f $ARGV[0] and $cmd = "core-file"; +		print $fh "$cmd $ARGV[0]\n";  		my $file = -f "$sysroot/$ARGV[1]" ? "$sysroot/$ARGV[1]" : $ARGV[1];  		system($gdb, '-x', $fp, $file); | 
