44 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1 KiB
		
	
	
	
		
			Perl
		
	
	
	
	
	
#!/usr/bin/perl
 | 
						|
$prefix = "c:/WinAVR";
 | 
						|
$datadir = "c:/WinAVR/doc";
 | 
						|
$debugger = "avr-gdb";
 | 
						|
 | 
						|
@argcmds = ( "-b", "--cd", "--command", "--core", "--pid", "--directory",
 | 
						|
	     "--exec", "--interpreter", "--se", "--symbols", "--tty",
 | 
						|
	     "-s", "-e", "-se", "-x", "-d" );
 | 
						|
 | 
						|
for ($i = 0; $i <= $#ARGV; $i++) {
 | 
						|
    $arg = $ARGV[$i];
 | 
						|
 | 
						|
    if ($arg =~ /^-/ &&
 | 
						|
	(grep $_ eq $arg, @argcmds || grep /^-$arg$/, @argcmds)) {
 | 
						|
	$i++;
 | 
						|
    }
 | 
						|
    elsif ($arg eq "--debugger" && $i < $#ARGV) {
 | 
						|
	$debugger = $ARGV[$i + 1];
 | 
						|
	splice @ARGV, $i, 2;
 | 
						|
	$i--;
 | 
						|
    }
 | 
						|
    elsif ($arg eq "--capture" || $arg eq "--ignore-intr") {
 | 
						|
	$ENV{AVARICE_ARGS} = "$ENV{AVARICE_ARGS} $arg";
 | 
						|
	splice @ARGV, $i, 1;
 | 
						|
	# Don't load an executable
 | 
						|
	$capture = 1 if $arg eq "--capture";
 | 
						|
	$i--;
 | 
						|
    }
 | 
						|
    elsif ($arg eq "--external") {
 | 
						|
	$avarice_running = 1;
 | 
						|
	splice @ARGV, $i, 1;
 | 
						|
	$i--;
 | 
						|
    }
 | 
						|
    elsif (!($arg =~ /^-/)) {
 | 
						|
	$exe = $arg;
 | 
						|
	break;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
$exe = "" if $capture;
 | 
						|
 | 
						|
system "start-avarice $exe" unless $avarice_running;
 | 
						|
unshift @ARGV, ($debugger, "-x", "$datadir/avarice/gdb-avarice-script" );
 | 
						|
exec @ARGV;
 |