Switch to 'perl -w' and add 'use strict;'.
Add prototypes to all functions. Remove $bashver and $outflags, they are not used.
This commit is contained in:
parent
017887e700
commit
62d9963a54
|
@ -1,4 +1,4 @@
|
||||||
#!/usr/bin/perl
|
#!/usr/bin/perl -w
|
||||||
##Wine Quick Debug Report Maker Thingy (WQDRMK)
|
##Wine Quick Debug Report Maker Thingy (WQDRMK)
|
||||||
## Copyright (c) 1998-1999 Adam Sacarny jazz@cscweb.net ICQ: 19617831
|
## Copyright (c) 1998-1999 Adam Sacarny jazz@cscweb.net ICQ: 19617831
|
||||||
##Do not say this is yours without my express permisson, or I will
|
##Do not say this is yours without my express permisson, or I will
|
||||||
|
@ -39,14 +39,15 @@
|
||||||
##January 26, 1999 - Fixed various bugs...
|
##January 26, 1999 - Fixed various bugs...
|
||||||
## - Made newbie mode easier
|
## - Made newbie mode easier
|
||||||
##January 25, 1999 - Initial Release
|
##January 25, 1999 - Initial Release
|
||||||
sub do_var {
|
use strict;
|
||||||
$var=$_[0];
|
sub do_var($) {
|
||||||
|
my $var=$_[0];
|
||||||
$var =~ s/\t//g;
|
$var =~ s/\t//g;
|
||||||
return $var;
|
return $var;
|
||||||
}
|
}
|
||||||
open STDERR, ">&SAVEERR"; open STDERR, ">&STDOUT";
|
open STDERR, ">&SAVEERR"; open STDERR, ">&STDOUT";
|
||||||
$ENV{'SHELL'}="/bin/bash";
|
$ENV{'SHELL'}="/bin/bash";
|
||||||
$var0 = qq{
|
my $var0 = qq{
|
||||||
What is your level of Wine expertise? 1-newbie 2-intermediate 3-advanced
|
What is your level of Wine expertise? 1-newbie 2-intermediate 3-advanced
|
||||||
|
|
||||||
1 - Makes a debug report as defined in the Wine documentation. Best
|
1 - Makes a debug report as defined in the Wine documentation. Best
|
||||||
|
@ -59,6 +60,7 @@ $var0 = qq{
|
||||||
doing so it leaves out the long descriptions.
|
doing so it leaves out the long descriptions.
|
||||||
};
|
};
|
||||||
print do_var($var0)."\n";
|
print do_var($var0)."\n";
|
||||||
|
my $debuglevel=0;
|
||||||
until ($debuglevel >= 1 and $debuglevel <= 3) {
|
until ($debuglevel >= 1 and $debuglevel <= 3) {
|
||||||
print "Enter your level of Wine expertise (1-3): ";
|
print "Enter your level of Wine expertise (1-3): ";
|
||||||
$debuglevel=<STDIN>;
|
$debuglevel=<STDIN>;
|
||||||
|
@ -66,7 +68,7 @@ until ($debuglevel >= 1 and $debuglevel <= 3) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($debuglevel < 3) {
|
if ($debuglevel < 3) {
|
||||||
$var1 = qq{
|
my $var1 = qq{
|
||||||
This program will make a debug report for Wine developers. It generates
|
This program will make a debug report for Wine developers. It generates
|
||||||
two files. The first one has everything asked for by the bugreports guide;
|
two files. The first one has everything asked for by the bugreports guide;
|
||||||
the second has *all* of the debug output, which can go to thousands of
|
the second has *all* of the debug output, which can go to thousands of
|
||||||
|
@ -82,7 +84,7 @@ if ($debuglevel < 3) {
|
||||||
};
|
};
|
||||||
print do_var($var1);
|
print do_var($var1);
|
||||||
} elsif ($debuglevel =~ 3) {
|
} elsif ($debuglevel =~ 3) {
|
||||||
$var2 = qq{
|
my $var2 = qq{
|
||||||
This program will output to two files:
|
This program will output to two files:
|
||||||
1. Formatted debug report you might want to post to the newsgroup
|
1. Formatted debug report you might want to post to the newsgroup
|
||||||
2. File with ALL the debug output (It will later be compressed with
|
2. File with ALL the debug output (It will later be compressed with
|
||||||
|
@ -94,9 +96,9 @@ if ($debuglevel < 3) {
|
||||||
}
|
}
|
||||||
|
|
||||||
print "\nFilename for the formatted debug report: ";
|
print "\nFilename for the formatted debug report: ";
|
||||||
$outfile=<STDIN>;
|
my $outfile=<STDIN>;
|
||||||
chomp $outfile;
|
chomp $outfile;
|
||||||
$var23 = qq{
|
my $var23 = qq{
|
||||||
I don't think you typed in the right filename. Let's try again.
|
I don't think you typed in the right filename. Let's try again.
|
||||||
};
|
};
|
||||||
while ($outfile =~ /^(\s)*$/) {
|
while ($outfile =~ /^(\s)*$/) {
|
||||||
|
@ -106,7 +108,7 @@ while ($outfile =~ /^(\s)*$/) {
|
||||||
}
|
}
|
||||||
|
|
||||||
print "Filename for full debug output: ";
|
print "Filename for full debug output: ";
|
||||||
$dbgoutfile=<STDIN>;
|
my $dbgoutfile=<STDIN>;
|
||||||
chomp $dbgoutfile;
|
chomp $dbgoutfile;
|
||||||
while ($dbgoutfile =~ /^(\s)*$/) {
|
while ($dbgoutfile =~ /^(\s)*$/) {
|
||||||
print do_var($var23);
|
print do_var($var23);
|
||||||
|
@ -114,12 +116,13 @@ while ($dbgoutfile =~ /^(\s)*$/) {
|
||||||
chomp $dbgoutfile;
|
chomp $dbgoutfile;
|
||||||
}
|
}
|
||||||
|
|
||||||
$var31 = qq{
|
my $var31 = qq{
|
||||||
Since you will only be creating the formatted report, I will need a
|
Since you will only be creating the formatted report, I will need a
|
||||||
temporary place to put the full output.
|
temporary place to put the full output.
|
||||||
You may not enter "no file" for this.
|
You may not enter "no file" for this.
|
||||||
Enter the filename for the temporary file:
|
Enter the filename for the temporary file:
|
||||||
};
|
};
|
||||||
|
my $tmpoutfile;
|
||||||
if ($outfile ne "no file" and $dbgoutfile eq "no file") {
|
if ($outfile ne "no file" and $dbgoutfile eq "no file") {
|
||||||
print do_var($var31);
|
print do_var($var31);
|
||||||
$tmpoutfile=<STDIN>;
|
$tmpoutfile=<STDIN>;
|
||||||
|
@ -131,20 +134,21 @@ if ($outfile ne "no file" and $dbgoutfile eq "no file") {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$whereis=`whereis wine`;
|
my $whereis=`whereis wine`;
|
||||||
chomp $whereis;
|
chomp $whereis;
|
||||||
print "\nWhere is your copy of Wine located?\n\n";
|
print "\nWhere is your copy of Wine located?\n\n";
|
||||||
$whereis =~ s/^wine\: //;
|
$whereis =~ s/^wine\: //;
|
||||||
@locations = split(/\s/,$whereis);
|
my @locations = split(/\s/,$whereis);
|
||||||
print "1 - Unlisted (I'll prompt you for a new location\n";
|
print "1 - Unlisted (I'll prompt you for a new location\n";
|
||||||
print "2 - Unsure (I'll use #3, that's probably it)\n";
|
print "2 - Unsure (I'll use #3, that's probably it)\n";
|
||||||
$i=2;
|
my $i=2;
|
||||||
foreach $location (@locations) {
|
foreach my $location (@locations) {
|
||||||
$i++;
|
$i++;
|
||||||
print "$i - $location\n";
|
print "$i - $location\n";
|
||||||
}
|
}
|
||||||
print "\n";
|
print "\n";
|
||||||
sub select_wineloc {
|
sub select_wineloc() {
|
||||||
|
my $wineloc;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
print "Enter the number that corresponds to Wine's location: ";
|
print "Enter the number that corresponds to Wine's location: ";
|
||||||
|
@ -153,10 +157,10 @@ sub select_wineloc {
|
||||||
}
|
}
|
||||||
while ( ! ( $wineloc >=1 and $wineloc <= 2+@locations ) );
|
while ( ! ( $wineloc >=1 and $wineloc <= 2+@locations ) );
|
||||||
if ($wineloc == 1) {
|
if ($wineloc == 1) {
|
||||||
$var25 = qq{
|
my $var25 = qq{
|
||||||
Enter the full path to wine (Example: /usr/bin/wine):
|
Enter the full path to wine (Example: /usr/bin/wine):
|
||||||
};
|
};
|
||||||
$var26 = qq{
|
my $var26 = qq{
|
||||||
Please enter the full path to wine. A full path is the
|
Please enter the full path to wine. A full path is the
|
||||||
directories leading up to a program's location, and then the
|
directories leading up to a program's location, and then the
|
||||||
program. For example, if you had the program "wine" in the
|
program. For example, if you had the program "wine" in the
|
||||||
|
@ -179,28 +183,29 @@ sub select_wineloc {
|
||||||
else {
|
else {
|
||||||
$wineloc=$locations[$wineloc-3];
|
$wineloc=$locations[$wineloc-3];
|
||||||
}
|
}
|
||||||
|
return $wineloc;
|
||||||
}
|
}
|
||||||
&select_wineloc;
|
my $wineloc=select_wineloc();
|
||||||
print "Checking if $wineloc is stripped...\n";
|
print "Checking if $wineloc is stripped...\n";
|
||||||
$ifstrip = `nm $wineloc 2>&1`;
|
my $ifstrip = `nm $wineloc 2>&1`;
|
||||||
while ($ifstrip =~ /no symbols/) {
|
while ($ifstrip =~ /no symbols/) {
|
||||||
$var24 = qq{
|
my $var24 = qq{
|
||||||
Your wine is stripped! Stripped versions make useless debug reports
|
Your wine is stripped! Stripped versions make useless debug reports
|
||||||
If you have another location of wine that may be used, enter it now.
|
If you have another location of wine that may be used, enter it now.
|
||||||
Otherwise, hit control-c and download an unstripped (Debug) version, then re-run
|
Otherwise, hit control-c and download an unstripped (Debug) version, then re-run
|
||||||
this script.
|
this script.
|
||||||
};
|
};
|
||||||
print do_var($var24);
|
print do_var($var24);
|
||||||
&select_wineloc;
|
$wineloc=select_wineloc();
|
||||||
$ifstrip = `nm $wineloc 2>&1`;
|
$ifstrip = `nm $wineloc 2>&1`;
|
||||||
}
|
}
|
||||||
while ($ifstrip =~ /not recognized/) {
|
while ($ifstrip =~ /not recognized/) {
|
||||||
$var26 = qq{
|
my $var26 = qq{
|
||||||
Looks like you gave me something that isn't a Wine binary (It could be a
|
Looks like you gave me something that isn't a Wine binary (It could be a
|
||||||
text file). Try again.
|
text file). Try again.
|
||||||
};
|
};
|
||||||
print do_var($var26);
|
print do_var($var26);
|
||||||
&select_wineloc;
|
$wineloc=select_wineloc();
|
||||||
print "Checking if $wineloc is stripped...\n";
|
print "Checking if $wineloc is stripped...\n";
|
||||||
$ifstrip = `nm $wineloc 2>&1`;
|
$ifstrip = `nm $wineloc 2>&1`;
|
||||||
}
|
}
|
||||||
|
@ -217,6 +222,7 @@ print "\nWhat version of Windows are you using with Wine?\n\n".
|
||||||
"8 - Windows XP\n".
|
"8 - Windows XP\n".
|
||||||
"9 - Windows Server 2003\n".
|
"9 - Windows Server 2003\n".
|
||||||
"10 - Other\n\n";
|
"10 - Other\n\n";
|
||||||
|
my $winver;
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
print "Enter the number that corresponds to your Windows version: ";
|
print "Enter the number that corresponds to your Windows version: ";
|
||||||
|
@ -250,7 +256,7 @@ if ($winver =~ 0) {
|
||||||
chomp $winver;
|
chomp $winver;
|
||||||
}
|
}
|
||||||
if ($debuglevel < 3) {
|
if ($debuglevel < 3) {
|
||||||
$var7 = qq{
|
my $var7 = qq{
|
||||||
Enter the full path to the program you want to run. Remember what you
|
Enter the full path to the program you want to run. Remember what you
|
||||||
were told before - a full path is the directories leading up to the
|
were told before - a full path is the directories leading up to the
|
||||||
program and then the program's name, like /dos/windows/sol.exe, not
|
program and then the program's name, like /dos/windows/sol.exe, not
|
||||||
|
@ -259,13 +265,13 @@ if ($debuglevel < 3) {
|
||||||
print do_var($var7);
|
print do_var($var7);
|
||||||
}
|
}
|
||||||
if ($debuglevel =~ 3) {
|
if ($debuglevel =~ 3) {
|
||||||
$var8 = qq{
|
my $var8 = qq{
|
||||||
Enter the full path to the program you want to run (Example:
|
Enter the full path to the program you want to run (Example:
|
||||||
/dos/windows/sol.exe, NOT sol.exe):
|
/dos/windows/sol.exe, NOT sol.exe):
|
||||||
};
|
};
|
||||||
print do_var($var8);
|
print do_var($var8);
|
||||||
}
|
}
|
||||||
$program=<STDIN>;
|
my $program=<STDIN>;
|
||||||
chomp $program;
|
chomp $program;
|
||||||
while ($program =~ /^(\s)*$/) {
|
while ($program =~ /^(\s)*$/) {
|
||||||
print do_var($var23);
|
print do_var($var23);
|
||||||
|
@ -273,19 +279,19 @@ while ($program =~ /^(\s)*$/) {
|
||||||
chomp $program;
|
chomp $program;
|
||||||
}
|
}
|
||||||
$program =~ s/\"//g;
|
$program =~ s/\"//g;
|
||||||
$var9 = qq{
|
my $var9 = qq{
|
||||||
Enter the name, version, and manufacturer of the program (Example:
|
Enter the name, version, and manufacturer of the program (Example:
|
||||||
Netscape Navigator 4.5):
|
Netscape Navigator 4.5):
|
||||||
};
|
};
|
||||||
print do_var($var9);
|
print do_var($var9);
|
||||||
$progname=<STDIN>;
|
my $progname=<STDIN>;
|
||||||
chomp $progname;
|
chomp $progname;
|
||||||
$var10 = qq{
|
my $var10 = qq{
|
||||||
Enter 1 if your program is 16 bit (Windows 3.x), 2 if your program is 32
|
Enter 1 if your program is 16 bit (Windows 3.x), 2 if your program is 32
|
||||||
bit (Windows 95, NT3.x and up), or 3 if you are unsure:
|
bit (Windows 95, NT3.x and up), or 3 if you are unsure:
|
||||||
};
|
};
|
||||||
print do_var($var10);
|
print do_var($var10);
|
||||||
$progbits=<STDIN>;
|
my $progbits=<STDIN>;
|
||||||
chomp $progbits;
|
chomp $progbits;
|
||||||
until ($progbits == 1 or $progbits == 2 or $progbits == 3) {
|
until ($progbits == 1 or $progbits == 2 or $progbits == 3) {
|
||||||
print "You must enter 1, 2 or 3!\n";
|
print "You must enter 1, 2 or 3!\n";
|
||||||
|
@ -293,15 +299,16 @@ until ($progbits == 1 or $progbits == 2 or $progbits == 3) {
|
||||||
chomp $progbits
|
chomp $progbits
|
||||||
}
|
}
|
||||||
if ($progbits =~ 1) {
|
if ($progbits =~ 1) {
|
||||||
$progbits=Win16
|
$progbits = "Win16";
|
||||||
} elsif ($progbits =~ 2) {
|
} elsif ($progbits =~ 2) {
|
||||||
$progbits=Win32
|
$progbits = "Win32";
|
||||||
} else {
|
} else {
|
||||||
$progbits = "Unsure"
|
$progbits = "Unsure";
|
||||||
}
|
}
|
||||||
|
my $debugopts;
|
||||||
if ($debuglevel > 1) {
|
if ($debuglevel > 1) {
|
||||||
if ($debuglevel =~ 2) {
|
if ($debuglevel =~ 2) {
|
||||||
$var11 = qq{
|
my $var11 = qq{
|
||||||
Enter any extra debug options. Default is +relay - If you don't
|
Enter any extra debug options. Default is +relay - If you don't
|
||||||
know what options to use, just hit enter, and I'll use those (Example, the
|
know what options to use, just hit enter, and I'll use those (Example, the
|
||||||
developer tells you to re-run with WINEDEBUG=+dosfs,+module you would type
|
developer tells you to re-run with WINEDEBUG=+dosfs,+module you would type
|
||||||
|
@ -309,7 +316,7 @@ if ($debuglevel > 1) {
|
||||||
};
|
};
|
||||||
print do_var($var11);
|
print do_var($var11);
|
||||||
} elsif ($debuglevel =~ 3) {
|
} elsif ($debuglevel =~ 3) {
|
||||||
$var12 = qq{
|
my $var12 = qq{
|
||||||
Enter any debug options you would like to use. Just enter parts after
|
Enter any debug options you would like to use. Just enter parts after
|
||||||
WINEDEBUG. Default is +relay:
|
WINEDEBUG. Default is +relay:
|
||||||
};
|
};
|
||||||
|
@ -318,9 +325,10 @@ if ($debuglevel > 1) {
|
||||||
$debugopts=<STDIN>;
|
$debugopts=<STDIN>;
|
||||||
chomp $debugopts;
|
chomp $debugopts;
|
||||||
if ($debugopts =~ /--debugmsg /) {
|
if ($debugopts =~ /--debugmsg /) {
|
||||||
($crap, $debugopts) = split / /,$debugopts;
|
$debugopts = (split / /,$debugopts)[1];
|
||||||
|
}
|
||||||
if ($debugopts =~ /WINEDEBUG= /) {
|
if ($debugopts =~ /WINEDEBUG= /) {
|
||||||
($crap, $debugopts) = split / /,$debugopts;
|
$debugopts = (split / /,$debugopts)[1];
|
||||||
}
|
}
|
||||||
if ($debugopts =~ /^\s*$/) {
|
if ($debugopts =~ /^\s*$/) {
|
||||||
$debugopts="+relay";
|
$debugopts="+relay";
|
||||||
|
@ -328,9 +336,10 @@ if ($debuglevel > 1) {
|
||||||
} elsif ($debuglevel =~ 1) {
|
} elsif ($debuglevel =~ 1) {
|
||||||
$debugopts = "+relay";
|
$debugopts = "+relay";
|
||||||
}
|
}
|
||||||
|
my $lastnlines;
|
||||||
if ($debuglevel > 1) {
|
if ($debuglevel > 1) {
|
||||||
if ($debuglevel =~ 2) {
|
if ($debuglevel =~ 2) {
|
||||||
$var13 = qq{
|
my $var13 = qq{
|
||||||
How many trailing lines of debugging info do you want to include in the report
|
How many trailing lines of debugging info do you want to include in the report
|
||||||
you're going to submit (First file)? If a developer asks you to include
|
you're going to submit (First file)? If a developer asks you to include
|
||||||
the last 15000 lines, enter 15000 here. Default is 3000, which is reached by
|
the last 15000 lines, enter 15000 here. Default is 3000, which is reached by
|
||||||
|
@ -338,7 +347,7 @@ if ($debuglevel > 1) {
|
||||||
};
|
};
|
||||||
print do_var($var13);
|
print do_var($var13);
|
||||||
} elsif ($debuglevel =~ 3) {
|
} elsif ($debuglevel =~ 3) {
|
||||||
$var14 = qq{
|
my $var14 = qq{
|
||||||
Enter how many lines of trailing debugging output you want in your nice
|
Enter how many lines of trailing debugging output you want in your nice
|
||||||
formatted report. Default is 3000:
|
formatted report. Default is 3000:
|
||||||
};
|
};
|
||||||
|
@ -352,8 +361,9 @@ if ($debuglevel > 1) {
|
||||||
} elsif ($debuglevel =~ 1) {
|
} elsif ($debuglevel =~ 1) {
|
||||||
$lastnlines=3000;
|
$lastnlines=3000;
|
||||||
}
|
}
|
||||||
|
my $extraops;
|
||||||
if ($debuglevel > 1) {
|
if ($debuglevel > 1) {
|
||||||
$var15 = qq{
|
my $var15 = qq{
|
||||||
Enter any extra options you want to pass to Wine.
|
Enter any extra options you want to pass to Wine.
|
||||||
};
|
};
|
||||||
print do_var($var15);
|
print do_var($var15);
|
||||||
|
@ -364,19 +374,20 @@ if ($debuglevel > 1) {
|
||||||
}
|
}
|
||||||
|
|
||||||
print "\nEnter the name of your distribution (Example: RedHat 9.0): ";
|
print "\nEnter the name of your distribution (Example: RedHat 9.0): ";
|
||||||
$dist=<STDIN>;
|
my $dist=<STDIN>;
|
||||||
chomp $dist;
|
chomp $dist;
|
||||||
|
|
||||||
|
my $configopts;
|
||||||
if ($debuglevel > 1) {
|
if ($debuglevel > 1) {
|
||||||
if ($debuglevel =~ 2) {
|
if ($debuglevel =~ 2) {
|
||||||
$var16 = qq{
|
my $var16 = qq{
|
||||||
When you ran ./configure to build wine, were there any special options
|
When you ran ./configure to build wine, were there any special options
|
||||||
you used to do so (Example: --enable-dll)? If you didn't use any special
|
you used to do so (Example: --enable-dll)? If you didn't use any special
|
||||||
options or didn't compile Wine yourself, just hit enter:
|
options or didn't compile Wine yourself, just hit enter:
|
||||||
};
|
};
|
||||||
print do_var($var16);
|
print do_var($var16);
|
||||||
} elsif ($debuglevel =~ 3) {
|
} elsif ($debuglevel =~ 3) {
|
||||||
$var17 = qq{
|
my $var17 = qq{
|
||||||
Enter any special options you used when running ./configure for Wine
|
Enter any special options you used when running ./configure for Wine
|
||||||
(Default is none, use if you didn't compile Wine yourself):
|
(Default is none, use if you didn't compile Wine yourself):
|
||||||
};
|
};
|
||||||
|
@ -390,9 +401,10 @@ if ($debuglevel > 1) {
|
||||||
} elsif ($debuglevel =~ 1) {
|
} elsif ($debuglevel =~ 1) {
|
||||||
$configopts="None";
|
$configopts="None";
|
||||||
}
|
}
|
||||||
|
my $winever;
|
||||||
if ($debuglevel > 1) {
|
if ($debuglevel > 1) {
|
||||||
if ($debuglevel =~ 2) {
|
if ($debuglevel =~ 2) {
|
||||||
$var18 = qq{
|
my $var18 = qq{
|
||||||
Is your Wine version CVS or from a .tar.gz or RPM file? As in... did you download it
|
Is your Wine version CVS or from a .tar.gz or RPM file? As in... did you download it
|
||||||
off a website/ftpsite or did you/have you run cvs on it to update it?
|
off a website/ftpsite or did you/have you run cvs on it to update it?
|
||||||
For CVS: YYYYMMDD, where YYYY is the year (2004), MM is the month (03), and DD
|
For CVS: YYYYMMDD, where YYYY is the year (2004), MM is the month (03), and DD
|
||||||
|
@ -401,7 +413,7 @@ if ($debuglevel > 1) {
|
||||||
};
|
};
|
||||||
print do_var($var18);
|
print do_var($var18);
|
||||||
} elsif ($debuglevel =~ 3) {
|
} elsif ($debuglevel =~ 3) {
|
||||||
$var19 = qq{
|
my $var19 = qq{
|
||||||
Is your Wine from CVS? Enter the last CVS update date for it here, in
|
Is your Wine from CVS? Enter the last CVS update date for it here, in
|
||||||
YYYYMMDD form (If it's from a tarball or RPM, just hit enter):
|
YYYYMMDD form (If it's from a tarball or RPM, just hit enter):
|
||||||
};
|
};
|
||||||
|
@ -420,18 +432,18 @@ if ($debuglevel > 1) {
|
||||||
$winever=`$wineloc -v 2>&1`;
|
$winever=`$wineloc -v 2>&1`;
|
||||||
chomp $winever;
|
chomp $winever;
|
||||||
}
|
}
|
||||||
$gccver=`gcc -v 2>&1`;
|
my $gccver=`gcc -v 2>&1`;
|
||||||
($leftover,$gccver) = split /\n/,$gccver;
|
$gccver = (split /\n/,$gccver)[1];
|
||||||
chomp $gccver;
|
chomp $gccver;
|
||||||
$cpu=`uname -m`;
|
my $cpu=`uname -m`;
|
||||||
chomp $cpu;
|
chomp $cpu;
|
||||||
$kernelver=`uname -r`;
|
my $kernelver=`uname -r`;
|
||||||
chomp $kernelver;
|
chomp $kernelver;
|
||||||
$ostype=`uname -s`;
|
my $ostype=`uname -s`;
|
||||||
chomp $ostype;
|
chomp $ostype;
|
||||||
$wineneeds=`ldd $wineloc`;
|
my $wineneeds=`ldd $wineloc`;
|
||||||
if ($debuglevel < 3) {
|
if ($debuglevel < 3) {
|
||||||
$var20 = qq{
|
my $var20 = qq{
|
||||||
OK, now I'm going to run Wine. I will close it for you once the Wine
|
OK, now I'm going to run Wine. I will close it for you once the Wine
|
||||||
debugger comes up. NOTE: You won't see ANY debug messages. Don't
|
debugger comes up. NOTE: You won't see ANY debug messages. Don't
|
||||||
worry, they are being output to a file. Since there are so many, it's
|
worry, they are being output to a file. Since there are so many, it's
|
||||||
|
@ -442,22 +454,19 @@ if ($debuglevel < 3) {
|
||||||
};
|
};
|
||||||
print do_var($var20);
|
print do_var($var20);
|
||||||
} elsif ($debuglevel =~ 3) {
|
} elsif ($debuglevel =~ 3) {
|
||||||
$var21 = qq{
|
my $var21 = qq{
|
||||||
OK, now it's time to run Wine. I will close down Wine for you after
|
OK, now it's time to run Wine. I will close down Wine for you after
|
||||||
the debugger is finished doing its thing.
|
the debugger is finished doing its thing.
|
||||||
};
|
};
|
||||||
print do_var($var21);
|
print do_var($var21);
|
||||||
}
|
}
|
||||||
$bashver=qw("/bin/bash -version");
|
|
||||||
if ($bashver =~ /2\./) { $outflags = "2>" }
|
|
||||||
else { $outflags = ">\&" }
|
|
||||||
print "Hit enter to start Wine!\n";
|
print "Hit enter to start Wine!\n";
|
||||||
$blank=<STDIN>;
|
<STDIN>;
|
||||||
$dir=$program;
|
my $dir=$program;
|
||||||
$dir=~m#(.*)/#;
|
$dir=~m#(.*)/#;
|
||||||
$dir=$1;
|
$dir=$1;
|
||||||
use Cwd;
|
use Cwd;
|
||||||
$nowdir=getcwd;
|
my $nowdir=getcwd;
|
||||||
chdir($dir);
|
chdir($dir);
|
||||||
if (!($outfile =~ /\//) and $outfile ne "no file") {
|
if (!($outfile =~ /\//) and $outfile ne "no file") {
|
||||||
$outfile = "$nowdir/$outfile";
|
$outfile = "$nowdir/$outfile";
|
||||||
|
@ -469,9 +478,12 @@ if (!($tmpoutfile =~ /\//)) {
|
||||||
$tmpoutfile = "$nowdir/$tmpoutfile";
|
$tmpoutfile = "$nowdir/$tmpoutfile";
|
||||||
}
|
}
|
||||||
$SIG{CHLD}=$SIG{CLD}=sub { wait };
|
$SIG{CHLD}=$SIG{CLD}=sub { wait };
|
||||||
|
my $lastlines;
|
||||||
|
sub generate_outfile();
|
||||||
if ($dbgoutfile ne "no file") {
|
if ($dbgoutfile ne "no file") {
|
||||||
unlink("$dbgoutfile");
|
unlink("$dbgoutfile");
|
||||||
if ($pid=fork()) {
|
my $pid=fork();
|
||||||
|
if ($pid) {
|
||||||
}
|
}
|
||||||
elsif (defined $pid) {
|
elsif (defined $pid) {
|
||||||
close(0);close(1);close(2);
|
close(0);close(1);close(2);
|
||||||
|
@ -482,23 +494,24 @@ if ($dbgoutfile ne "no file") {
|
||||||
}
|
}
|
||||||
while (kill(0, $pid)) {
|
while (kill(0, $pid)) {
|
||||||
sleep(5);
|
sleep(5);
|
||||||
$last = `tail -n 5 $dbgoutfile | grep Wine-dbg`;
|
my $last = `tail -n 5 $dbgoutfile | grep Wine-dbg`;
|
||||||
if ($last =~ /Wine-dbg/) {
|
if ($last =~ /Wine-dbg/) {
|
||||||
kill "TERM", $pid;
|
kill "TERM", $pid;
|
||||||
break;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ($outfile ne "no file") {
|
if ($outfile ne "no file") {
|
||||||
$lastlines=`tail -n $lastnlines $dbgoutfile`;
|
$lastlines=`tail -n $lastnlines $dbgoutfile`;
|
||||||
system("gzip $dbgoutfile");
|
system("gzip $dbgoutfile");
|
||||||
&generate_outfile;
|
generate_outfile();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
system("gzip $dbgoutfile");
|
system("gzip $dbgoutfile");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($outfile ne "no file" and $dbgoutfile eq "no file") {
|
elsif ($outfile ne "no file" and $dbgoutfile eq "no file") {
|
||||||
if ($pid=fork()) {
|
my $pid=fork();
|
||||||
|
if ($pid) {
|
||||||
}
|
}
|
||||||
elsif (defined $pid) {
|
elsif (defined $pid) {
|
||||||
close(0);close(1);close(2);
|
close(0);close(1);close(2);
|
||||||
|
@ -510,10 +523,10 @@ elsif ($outfile ne "no file" and $dbgoutfile eq "no file") {
|
||||||
print "$outfile $tmpoutfile";
|
print "$outfile $tmpoutfile";
|
||||||
while (kill(0, $pid)) {
|
while (kill(0, $pid)) {
|
||||||
sleep(5);
|
sleep(5);
|
||||||
$last = `tail -n 5 $tmpoutfile | grep Wine-dbg`;
|
my $last = `tail -n 5 $tmpoutfile | grep Wine-dbg`;
|
||||||
if ($last =~ /Wine-dbg/) {
|
if ($last =~ /Wine-dbg/) {
|
||||||
kill "TERM", $pid;
|
kill "TERM", $pid;
|
||||||
break;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
unlink($tmpoutfile);
|
unlink($tmpoutfile);
|
||||||
|
@ -523,20 +536,20 @@ elsif ($outfile ne "no file" and $dbgoutfile eq "no file") {
|
||||||
}
|
}
|
||||||
close(OUTFILE);
|
close(OUTFILE);
|
||||||
unlink($outfile);
|
unlink($outfile);
|
||||||
&generate_outfile;
|
generate_outfile();
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
$var27 = qq{
|
my $var27 = qq{
|
||||||
I guess you don't want me to make any debugging output. I'll send
|
I guess you don't want me to make any debugging output. I'll send
|
||||||
it to your terminal. This will be a *lot* of output -- hit enter to
|
it to your terminal. This will be a *lot* of output -- hit enter to
|
||||||
continue, control-c to quit.
|
continue, control-c to quit.
|
||||||
Repeat: this will be a lot of output!
|
Repeat: this will be a lot of output!
|
||||||
};
|
};
|
||||||
print do_var($var27);
|
print do_var($var27);
|
||||||
$blah=<STDIN>;
|
<STDIN>;
|
||||||
system("$wineloc WINEDEBUG=$debugopts $extraops \"$program\"");
|
system("$wineloc WINEDEBUG=$debugopts $extraops \"$program\"");
|
||||||
}
|
}
|
||||||
sub generate_outfile {
|
sub generate_outfile() {
|
||||||
open(OUTFILE,">$outfile");
|
open(OUTFILE,">$outfile");
|
||||||
print OUTFILE <<EOM;
|
print OUTFILE <<EOM;
|
||||||
Auto-generated debug report by Wine Quick Debug Report Maker Tool:
|
Auto-generated debug report by Wine Quick Debug Report Maker Tool:
|
||||||
|
@ -560,20 +573,20 @@ I have a copy of the full debug report, if it is needed.
|
||||||
Thank you!
|
Thank you!
|
||||||
EOM
|
EOM
|
||||||
}
|
}
|
||||||
$var22 = qq{
|
my $var22 = qq{
|
||||||
Great! We're finished making the debug report. Please go to http://bugs.winehq.org
|
Great! We're finished making the debug report. Please go to http://bugs.winehq.org
|
||||||
and enter it as a new bug. Check that nobody has already reported the same bug!
|
and enter it as a new bug. Check that nobody has already reported the same bug!
|
||||||
};
|
};
|
||||||
$var28 = qq{
|
my $var28 = qq{
|
||||||
The filename for the formatted report is:
|
The filename for the formatted report is:
|
||||||
$outfile
|
$outfile
|
||||||
};
|
};
|
||||||
$var29 = qq{
|
my $var29 = qq{
|
||||||
The filename for the compressed full debug is:
|
The filename for the compressed full debug is:
|
||||||
$dbgoutfile.gz
|
$dbgoutfile.gz
|
||||||
Note that it is $dbgoutfile.gz, since I compressed it with gzip for you.
|
Note that it is $dbgoutfile.gz, since I compressed it with gzip for you.
|
||||||
};
|
};
|
||||||
$var30 = qq{
|
my $var30 = qq{
|
||||||
If you have any problems with this bug reporting tool,
|
If you have any problems with this bug reporting tool,
|
||||||
please submit a bug report to Wine bugtracking system at http://bugs.winehq.org
|
please submit a bug report to Wine bugtracking system at http://bugs.winehq.org
|
||||||
or tell the Wine newsgroup (comp.emulators.ms-windows.wine).
|
or tell the Wine newsgroup (comp.emulators.ms-windows.wine).
|
||||||
|
|
Loading…
Reference in New Issue