Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 1 | #!/usr/bin/perl |
| 2 | ##Wine Quick Debug Report Maker Thingy (WQDRMK) |
Ivan Leo Murray-Smith | 709cc31 | 2003-11-26 05:05:17 +0000 | [diff] [blame] | 3 | ## Copyright (c) 1998-1999 Adam Sacarny jazz@cscweb.net ICQ: 19617831 |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 4 | ##Do not say this is yours without my express permisson, or I will |
| 5 | ##hunt you down and kill you like the savage animal I am. |
Gerald Pfeifer | 9217b66 | 2000-03-15 19:04:25 +0000 | [diff] [blame] | 6 | ## |
| 7 | ## Improvements by Gerald Pfeifer <pfeifer@dbai.tuwien.ac.at> |
| 8 | ## (c) 2000 |
| 9 | ## |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 10 | ## A few improovements and updates here and there |
Ivan Leo Puoti | 3e42f69 | 2004-05-27 02:25:13 +0000 | [diff] [blame] | 11 | ## Copyright 2003-2004 Ivan Leo Puoti |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 12 | ## |
Alexandre Julliard | 0799c1a | 2002-03-09 23:29:33 +0000 | [diff] [blame] | 13 | ## This library is free software; you can redistribute it and/or |
| 14 | ## modify it under the terms of the GNU Lesser General Public |
| 15 | ## License as published by the Free Software Foundation; either |
| 16 | ## version 2.1 of the License, or (at your option) any later version. |
| 17 | ## |
| 18 | ## This library is distributed in the hope that it will be useful, |
| 19 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of |
| 20 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
| 21 | ## Lesser General Public License for more details. |
| 22 | ## |
| 23 | ## You should have received a copy of the GNU Lesser General Public |
| 24 | ## License along with this library; if not, write to the Free Software |
| 25 | ## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA |
Gerald Pfeifer | 9217b66 | 2000-03-15 19:04:25 +0000 | [diff] [blame] | 26 | ## |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 27 | ##Changelog: |
Adam Sacarny | 9f1d5a7 | 1999-09-10 13:53:20 +0000 | [diff] [blame] | 28 | ##August 29, 1999 - Work around for debugger exit (or lack thereof) |
| 29 | ## - Should now put debugging output in correct place |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 30 | ##April 19, 1999 - Much nicer way to select Wine's location |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 31 | ## - Option to disable creation of a debugging output |
| 32 | ## - Now places debugging output where it was started |
Adam Sacarny | 833e47d | 1999-04-06 06:59:49 +0000 | [diff] [blame] | 33 | ##April 4, 1999 - Sanity check for file locations/wine strippedness |
| 34 | ## - Various code cleanups/fixes |
Adam Sacarny | 733c124 | 1999-03-22 12:39:49 +0000 | [diff] [blame] | 35 | ##March 21, 1999 - Bash 2.0 STDERR workaround (Thanks Ryan Cumming!) |
| 36 | ##March 1, 1999 - Check for stripped build |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 37 | ##February 3, 1999 - Fix to chdir to the program's directory |
| 38 | ##February 1, 1999 - Cleaned up code |
Adam the Jazz Guy | 5a8cd24 | 1999-01-28 09:55:51 +0000 | [diff] [blame] | 39 | ##January 26, 1999 - Fixed various bugs... |
| 40 | ## - Made newbie mode easier |
| 41 | ##January 25, 1999 - Initial Release |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 42 | sub do_var { |
| 43 | $var=$_[0]; |
| 44 | $var =~ s/\t//g; |
| 45 | return $var; |
| 46 | } |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 47 | open STDERR, ">&SAVEERR"; open STDERR, ">&STDOUT"; |
Adam the Jazz Guy | 5a8cd24 | 1999-01-28 09:55:51 +0000 | [diff] [blame] | 48 | $ENV{'SHELL'}="/bin/bash"; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 49 | $var0 = qq{ |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 50 | What is your level of Wine expertise? 1-newbie 2-intermediate 3-advanced |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 51 | |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 52 | 1 - Makes a debug report as defined in the Wine documentation. Best |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 53 | for new Wine users. If you're not sure what WINEDEBUG is, then |
Gerald Pfeifer | 9217b66 | 2000-03-15 19:04:25 +0000 | [diff] [blame] | 54 | use this mode. |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 55 | 2 - Makes a debug report that is more customizable (Example: you can |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 56 | choose what WINEDEBUG to use). You are asked more questions in |
Gerald Pfeifer | 9217b66 | 2000-03-15 19:04:25 +0000 | [diff] [blame] | 57 | this mode. May intimidate newbies. |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 58 | 3 - Just like 2, but not corner cutting. Assumes you know what you're |
Gerald Pfeifer | 9217b66 | 2000-03-15 19:04:25 +0000 | [diff] [blame] | 59 | doing so it leaves out the long descriptions. |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 60 | }; |
Gerald Pfeifer | 9217b66 | 2000-03-15 19:04:25 +0000 | [diff] [blame] | 61 | print do_var($var0)."\n"; |
Gerald Pfeifer | 92d76bd | 2000-03-17 15:07:52 +0000 | [diff] [blame] | 62 | until ($debuglevel >= 1 and $debuglevel <= 3) { |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 63 | print "Enter your level of Wine expertise (1-3): "; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 64 | $debuglevel=<STDIN>; |
| 65 | chomp $debuglevel; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 66 | } |
Gerald Pfeifer | 9217b66 | 2000-03-15 19:04:25 +0000 | [diff] [blame] | 67 | |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 68 | if ($debuglevel < 3) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 69 | $var1 = qq{ |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 70 | This program will make a debug report for Wine developers. It generates |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 71 | two files. The first one has everything asked for by the bugreports guide; |
| 72 | the second has *all* of the debug output, which can go to thousands of |
| 73 | lines. |
Andriy Palamarchuk | 1827e7d1 | 2002-05-08 23:14:19 +0000 | [diff] [blame] | 74 | To (hopefully) get the bug fixed, report it to the project |
Dimitrie O. Paun | c023254 | 2003-11-26 03:55:01 +0000 | [diff] [blame] | 75 | bug tracking system at http://bugs.winehq.org. |
Andriy Palamarchuk | 1827e7d1 | 2002-05-08 23:14:19 +0000 | [diff] [blame] | 76 | Attach the first file to the bug description. |
| 77 | Also include detailed description of the problem. The developers |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 78 | might ask you for "the last X lines from the report". If so, just |
| 79 | provide the output of the following command: |
| 80 | gzip -d (output file) | tail -n (X) > outfile |
| 81 | If you do not want to create one of the files, just specify "no file". |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 82 | }; |
| 83 | print do_var($var1); |
| 84 | } elsif ($debuglevel =~ 3) { |
| 85 | $var2 = qq{ |
| 86 | This program will output to two files: |
| 87 | 1. Formatted debug report you might want to post to the newsgroup |
| 88 | 2. File with ALL the debug output (It will later be compressed with |
| 89 | gzip, so leave off the trailing .gz) |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 90 | If you do not want to create one of the files, just type in "no file" |
| 91 | and I'll skip it. |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 92 | }; |
| 93 | print do_var($var2); |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 94 | } |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 95 | |
| 96 | print "\nFilename for the formatted debug report: "; |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 97 | $outfile=<STDIN>; |
| 98 | chomp $outfile; |
Adam Sacarny | 833e47d | 1999-04-06 06:59:49 +0000 | [diff] [blame] | 99 | $var23 = qq{ |
| 100 | I don't think you typed in the right filename. Let's try again. |
| 101 | }; |
| 102 | while ($outfile =~ /^(\s)*$/) { |
| 103 | print do_var($var23); |
| 104 | $outfile=<STDIN>; |
| 105 | chomp $outfile; |
| 106 | } |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 107 | |
| 108 | print "Filename for full debug output: "; |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 109 | $dbgoutfile=<STDIN>; |
| 110 | chomp $dbgoutfile; |
Adam Sacarny | 833e47d | 1999-04-06 06:59:49 +0000 | [diff] [blame] | 111 | while ($dbgoutfile =~ /^(\s)*$/) { |
| 112 | print do_var($var23); |
| 113 | $dbgoutfile=<STDIN>; |
| 114 | chomp $dbgoutfile; |
| 115 | } |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 116 | |
Adam Sacarny | 9f1d5a7 | 1999-09-10 13:53:20 +0000 | [diff] [blame] | 117 | $var31 = qq{ |
| 118 | Since you will only be creating the formatted report, I will need a |
| 119 | temporary place to put the full output. |
| 120 | You may not enter "no file" for this. |
| 121 | Enter the filename for the temporary file: |
| 122 | }; |
| 123 | if ($outfile ne "no file" and $dbgoutfile eq "no file") { |
| 124 | print do_var($var31); |
| 125 | $tmpoutfile=<STDIN>; |
| 126 | chomp $tmpoutfile; |
| 127 | while (($tmpoutfile =~ /^(\s)*$/) or ($tmpoutfile eq "no file")) { |
| 128 | print do_var($var23); |
| 129 | $tmpoutfile=<STDIN>; |
| 130 | chomp $tmpoutfile; |
| 131 | } |
| 132 | } |
Gerald Pfeifer | 9217b66 | 2000-03-15 19:04:25 +0000 | [diff] [blame] | 133 | |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 134 | $whereis=`whereis wine`; |
| 135 | chomp $whereis; |
Gerald Pfeifer | 92d76bd | 2000-03-17 15:07:52 +0000 | [diff] [blame] | 136 | print "\nWhere is your copy of Wine located?\n\n"; |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 137 | $whereis =~ s/^wine\: //; |
| 138 | @locations = split(/\s/,$whereis); |
Gerald Pfeifer | 92d76bd | 2000-03-17 15:07:52 +0000 | [diff] [blame] | 139 | print "1 - Unlisted (I'll prompt you for a new location\n"; |
| 140 | print "2 - Unsure (I'll use #3, that's probably it)\n"; |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 141 | $i=2; |
| 142 | foreach $location (@locations) { |
| 143 | $i++; |
Gerald Pfeifer | 92d76bd | 2000-03-17 15:07:52 +0000 | [diff] [blame] | 144 | print "$i - $location\n"; |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 145 | } |
Gerald Pfeifer | 92d76bd | 2000-03-17 15:07:52 +0000 | [diff] [blame] | 146 | print "\n"; |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 147 | sub select_wineloc { |
Gerald Pfeifer | 92d76bd | 2000-03-17 15:07:52 +0000 | [diff] [blame] | 148 | do |
| 149 | { |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 150 | print "Enter the number that corresponds to Wine's location: "; |
| 151 | $wineloc=<STDIN>; |
| 152 | chomp $wineloc; |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 153 | } |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 154 | while ( ! ( $wineloc >=1 and $wineloc <= 2+@locations ) ); |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 155 | if ($wineloc == 1) { |
| 156 | $var25 = qq{ |
| 157 | Enter the full path to wine (Example: /usr/bin/wine): |
| 158 | }; |
| 159 | $var26 = qq{ |
| 160 | Please enter the full path to wine. A full path is the |
| 161 | directories leading up to a program's location, and then the |
| 162 | program. For example, if you had the program "wine" in the |
| 163 | directory "/usr/bin", you would type in "/usr/bin/wine". Now |
| 164 | try: |
| 165 | }; |
| 166 | print do_var($var25) if $debuglevel == 3; |
| 167 | print do_var($var26) if $debuglevel < 3; |
| 168 | $wineloc=<STDIN>; |
| 169 | chomp $wineloc; |
| 170 | while ($wineloc =~ /^(\s)*$/) { |
| 171 | print do_var($var23); |
| 172 | $wineloc=<STDIN>; |
| 173 | chomp $wineloc; |
| 174 | } |
| 175 | } |
| 176 | elsif ($wineloc == 2) { |
| 177 | $wineloc=$locations[0]; |
| 178 | } |
| 179 | else { |
| 180 | $wineloc=$locations[$wineloc-3]; |
| 181 | } |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 182 | } |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 183 | &select_wineloc; |
Adam Sacarny | 733c124 | 1999-03-22 12:39:49 +0000 | [diff] [blame] | 184 | print "Checking if $wineloc is stripped...\n"; |
| 185 | $ifstrip = `nm $wineloc 2>&1`; |
Adam Sacarny | 833e47d | 1999-04-06 06:59:49 +0000 | [diff] [blame] | 186 | while ($ifstrip =~ /no symbols/) { |
| 187 | $var24 = qq{ |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 188 | Your wine is stripped! Stripped versions make useless debug reports |
Adam Sacarny | 833e47d | 1999-04-06 06:59:49 +0000 | [diff] [blame] | 189 | If you have another location of wine that may be used, enter it now. |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 190 | Otherwise, hit control-c and download an unstripped (Debug) version, then re-run |
| 191 | this script. |
Adam Sacarny | 833e47d | 1999-04-06 06:59:49 +0000 | [diff] [blame] | 192 | }; |
| 193 | print do_var($var24); |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 194 | &select_wineloc; |
| 195 | $ifstrip = `nm $wineloc 2>&1`; |
| 196 | } |
| 197 | while ($ifstrip =~ /not recognized/) { |
| 198 | $var26 = qq{ |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 199 | Looks like you gave me something that isn't a Wine binary (It could be a |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 200 | text file). Try again. |
| 201 | }; |
| 202 | print do_var($var26); |
| 203 | &select_wineloc; |
| 204 | print "Checking if $wineloc is stripped...\n"; |
Adam Sacarny | 833e47d | 1999-04-06 06:59:49 +0000 | [diff] [blame] | 205 | $ifstrip = `nm $wineloc 2>&1`; |
Adam Sacarny | 733c124 | 1999-03-22 12:39:49 +0000 | [diff] [blame] | 206 | } |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 207 | |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 208 | print "\nWhat version of Windows are you using with Wine?\n\n". |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 209 | "0 - None\n". |
| 210 | "1 - Windows 3.x\n". |
| 211 | "2 - Windows 95\n". |
| 212 | "3 - Windows 98\n". |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 213 | "4 - Windows ME\n". |
| 214 | "5 - Windows NT 3.5x\n". |
| 215 | "6 - Windows NT4.x\n". |
| 216 | "7 - Windows 2000\n". |
| 217 | "8 - Windows XP\n". |
| 218 | "9 - Windows Server 2003\n". |
| 219 | "10 - Other\n\n"; |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 220 | do |
| 221 | { |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 222 | print "Enter the number that corresponds to your Windows version: "; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 223 | $winver=<STDIN>; |
| 224 | chomp $winver; |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 225 | } |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 226 | until ($winver >= 0 and $winver <= 10); |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 227 | if ($winver =~ 0) { |
| 228 | $winver="None Installed"; |
| 229 | } elsif ($winver =~ 1) { |
| 230 | $winver="Windows 3.x"; |
| 231 | } elsif ($winver =~ 2) { |
| 232 | $winver="Windows 95"; |
| 233 | } elsif ($winver =~ 3) { |
| 234 | $winver="Windows 98"; |
| 235 | } elsif ($winver =~ 4) { |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 236 | $winver="Windows ME"; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 237 | } elsif ($winver =~ 5) { |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 238 | $winver="Windows NT 3.5x"; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 239 | } elsif ($winver =~ 6) { |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 240 | $winver="Windows NT 4.x"; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 241 | } elsif ($winver =~ 7) { |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 242 | $winver="Windows 2000"; |
Andreas Mohr | 3e7628e | 2003-01-02 17:53:26 +0000 | [diff] [blame] | 243 | } elsif ($winver =~ 8) { |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 244 | $winver="Windows XP"; |
| 245 | } elsif ($winver =~ 9) { |
| 246 | $winver="Windows Server 2003"; |
| 247 | } elsif ($winver =~ 10) { |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 248 | print "What version of Windows are you using? "; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 249 | $winver=<STDIN>; |
| 250 | chomp $winver; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 251 | } |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 252 | if ($debuglevel < 3) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 253 | $var7 = qq{ |
| 254 | Enter the full path to the program you want to run. Remember what you |
| 255 | were told before - a full path is the directories leading up to the |
| 256 | program and then the program's name, like /dos/windows/sol.exe, not |
| 257 | sol.exe: |
| 258 | }; |
| 259 | print do_var($var7); |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 260 | } |
| 261 | if ($debuglevel =~ 3) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 262 | $var8 = qq{ |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 263 | Enter the full path to the program you want to run (Example: |
| 264 | /dos/windows/sol.exe, NOT sol.exe): |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 265 | }; |
| 266 | print do_var($var8); |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 267 | } |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 268 | $program=<STDIN>; |
| 269 | chomp $program; |
Adam Sacarny | 833e47d | 1999-04-06 06:59:49 +0000 | [diff] [blame] | 270 | while ($program =~ /^(\s)*$/) { |
| 271 | print do_var($var23); |
| 272 | $program=<STDIN>; |
| 273 | chomp $program; |
| 274 | } |
| 275 | $program =~ s/\"//g; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 276 | $var9 = qq{ |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 277 | Enter the name, version, and manufacturer of the program (Example: |
| 278 | Netscape Navigator 4.5): |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 279 | }; |
| 280 | print do_var($var9); |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 281 | $progname=<STDIN>; |
| 282 | chomp $progname; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 283 | $var10 = qq{ |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 284 | Enter 1 if your program is 16 bit (Windows 3.x), 2 if your program is 32 |
| 285 | bit (Windows 95, NT3.x and up), or 3 if you are unsure: |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 286 | }; |
| 287 | print do_var($var10); |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 288 | $progbits=<STDIN>; |
| 289 | chomp $progbits; |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 290 | until ($progbits == 1 or $progbits == 2 or $progbits == 3) { |
| 291 | print "You must enter 1, 2 or 3!\n"; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 292 | $progbits=<STDIN>; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 293 | chomp $progbits |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 294 | } |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 295 | if ($progbits =~ 1) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 296 | $progbits=Win16 |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 297 | } elsif ($progbits =~ 2) { |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 298 | $progbits=Win32 |
| 299 | } else { |
| 300 | $progbits = "Unsure" |
| 301 | } |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 302 | if ($debuglevel > 1) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 303 | if ($debuglevel =~ 2) { |
| 304 | $var11 = qq{ |
| 305 | Enter any extra debug options. Default is +relay - If you don't |
| 306 | know what options to use, just hit enter, and I'll use those (Example, the |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 307 | developer tells you to re-run with WINEDEBUG=+dosfs,+module you would type |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 308 | in +dosfs,+module). Hit enter if you're not sure what to do: |
| 309 | }; |
| 310 | print do_var($var11); |
| 311 | } elsif ($debuglevel =~ 3) { |
| 312 | $var12 = qq{ |
| 313 | Enter any debug options you would like to use. Just enter parts after |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 314 | WINEDEBUG. Default is +relay: |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 315 | }; |
| 316 | print do_var($var12); |
| 317 | } |
| 318 | $debugopts=<STDIN>; |
| 319 | chomp $debugopts; |
Ivan Leo Murray-Smith | 709cc31 | 2003-11-26 05:05:17 +0000 | [diff] [blame] | 320 | if ($debugopts =~ /--debugmsg /) { |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 321 | ($crap, $debugopts) = split / /,$debugopts; |
Ivan Leo Murray-Smith | 6a1ce96 | 2004-03-31 00:55:25 +0000 | [diff] [blame] | 322 | if ($debugopts =~ /WINEDEBUG= /) { |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 323 | ($crap, $debugopts) = split / /,$debugopts; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 324 | } |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 325 | if ($debugopts =~ /^\s*$/) { |
| 326 | $debugopts="+relay"; |
| 327 | } |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 328 | } elsif ($debuglevel =~ 1) { |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 329 | $debugopts = "+relay"; |
| 330 | } |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 331 | if ($debuglevel > 1) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 332 | if ($debuglevel =~ 2) { |
| 333 | $var13 = qq{ |
| 334 | How many trailing lines of debugging info do you want to include in the report |
| 335 | you're going to submit (First file)? If a developer asks you to include |
Andreas Mohr | 3e7628e | 2003-01-02 17:53:26 +0000 | [diff] [blame] | 336 | the last 15000 lines, enter 15000 here. Default is 3000, which is reached by |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 337 | pressing enter. (If you're not sure, just hit enter): |
| 338 | }; |
| 339 | print do_var($var13); |
| 340 | } elsif ($debuglevel =~ 3) { |
| 341 | $var14 = qq{ |
| 342 | Enter how many lines of trailing debugging output you want in your nice |
Andreas Mohr | 3e7628e | 2003-01-02 17:53:26 +0000 | [diff] [blame] | 343 | formatted report. Default is 3000: |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 344 | }; |
| 345 | print do_var($var14); |
| 346 | } |
| 347 | $lastnlines=<STDIN>; |
| 348 | chomp $lastnlines; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 349 | if ($lastnlines =~ /^\s*$/) { |
Andreas Mohr | 3e7628e | 2003-01-02 17:53:26 +0000 | [diff] [blame] | 350 | $lastnlines=3000; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 351 | } |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 352 | } elsif ($debuglevel =~ 1) { |
Andreas Mohr | 3e7628e | 2003-01-02 17:53:26 +0000 | [diff] [blame] | 353 | $lastnlines=3000; |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 354 | } |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 355 | if ($debuglevel > 1) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 356 | $var15 = qq{ |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 357 | Enter any extra options you want to pass to Wine. |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 358 | }; |
| 359 | print do_var($var15); |
| 360 | $extraops=<STDIN>; |
| 361 | chomp $extraops; |
| 362 | } elsif ($debuglevel =~ 1) { |
Tony Lambregts | 0427479 | 2002-05-30 20:08:26 +0000 | [diff] [blame] | 363 | $extraops=" "; |
Adam the Jazz Guy | 5a8cd24 | 1999-01-28 09:55:51 +0000 | [diff] [blame] | 364 | } |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 365 | |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 366 | print "\nEnter the name of your distribution (Example: RedHat 9.0): "; |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 367 | $dist=<STDIN>; |
| 368 | chomp $dist; |
Gerald Pfeifer | f4c902c | 2000-03-24 19:48:05 +0000 | [diff] [blame] | 369 | |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 370 | if ($debuglevel > 1) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 371 | if ($debuglevel =~ 2) { |
| 372 | $var16 = qq{ |
| 373 | When you ran ./configure to build wine, were there any special options |
| 374 | you used to do so (Example: --enable-dll)? If you didn't use any special |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 375 | options or didn't compile Wine yourself, just hit enter: |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 376 | }; |
| 377 | print do_var($var16); |
| 378 | } elsif ($debuglevel =~ 3) { |
| 379 | $var17 = qq{ |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 380 | Enter any special options you used when running ./configure for Wine |
| 381 | (Default is none, use if you didn't compile Wine yourself): |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 382 | }; |
| 383 | print do_var($var17); |
| 384 | } |
| 385 | $configopts=<STDIN>; |
| 386 | chomp $configopts; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 387 | if ($configopts =~ /^\s*$/) { |
| 388 | $configopts="None"; |
| 389 | } |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 390 | } elsif ($debuglevel =~ 1) { |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 391 | $configopts="None"; |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 392 | } |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 393 | if ($debuglevel > 1) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 394 | if ($debuglevel =~ 2) { |
| 395 | $var18 = qq{ |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 396 | Is your Wine version CVS or from a .tar.gz or RPM file? As in... did you download it |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 397 | off a website/ftpsite or did you/have you run cvs on it to update it? |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 398 | For CVS: YYYYMMDD, where YYYY is the year (2004), MM is the month (03), and DD |
| 399 | is the day (09), that you last updated it (Example: 20040309). |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 400 | For tar.gz and RPM: Just hit enter and I'll figure out the version for you: |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 401 | }; |
| 402 | print do_var($var18); |
| 403 | } elsif ($debuglevel =~ 3) { |
| 404 | $var19 = qq{ |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 405 | Is your Wine from CVS? Enter the last CVS update date for it here, in |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 406 | YYYYMMDD form (If it's from a tarball or RPM, just hit enter): |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 407 | }; |
| 408 | print do_var($var19); |
| 409 | } |
| 410 | $winever=<STDIN>; |
| 411 | chomp $winever; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 412 | if ($winever =~ /[0-9]+/) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 413 | $winever .= " CVS"; |
| 414 | } |
| 415 | else { |
| 416 | $winever = `$wineloc -v 2>&1`; |
| 417 | chomp $winever; |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 418 | } |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 419 | } elsif ($debuglevel =~ 1) { |
| 420 | $winever=`$wineloc -v 2>&1`; |
| 421 | chomp $winever; |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 422 | } |
| 423 | $gccver=`gcc -v 2>&1`; |
| 424 | ($leftover,$gccver) = split /\n/,$gccver; |
| 425 | chomp $gccver; |
| 426 | $cpu=`uname -m`; |
| 427 | chomp $cpu; |
| 428 | $kernelver=`uname -r`; |
| 429 | chomp $kernelver; |
| 430 | $ostype=`uname -s`; |
| 431 | chomp $ostype; |
| 432 | $wineneeds=`ldd $wineloc`; |
| 433 | if ($debuglevel < 3) { |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 434 | $var20 = qq{ |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 435 | OK, now I'm going to run Wine. I will close it for you once the Wine |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 436 | debugger comes up. NOTE: You won't see ANY debug messages. Don't |
| 437 | worry, they are being output to a file. Since there are so many, it's |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 438 | not a good idea to have them all output to a terminal (Speed slowdown |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 439 | mainly). |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 440 | Wine will still run much slower than normal, because there will be so |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 441 | many debug messages being output to file. |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 442 | }; |
| 443 | print do_var($var20); |
| 444 | } elsif ($debuglevel =~ 3) { |
| 445 | $var21 = qq{ |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 446 | OK, now it's time to run Wine. I will close down Wine for you after |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 447 | the debugger is finished doing its thing. |
| 448 | }; |
| 449 | print do_var($var21); |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 450 | } |
Adam Sacarny | 733c124 | 1999-03-22 12:39:49 +0000 | [diff] [blame] | 451 | $bashver=qw("/bin/bash -version"); |
| 452 | if ($bashver =~ /2\./) { $outflags = "2>" } |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 453 | else { $outflags = ">\&" } |
Francois Gouget | 7572148 | 2003-01-05 01:08:56 +0000 | [diff] [blame] | 454 | print "Hit enter to start Wine!\n"; |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 455 | $blank=<STDIN>; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 456 | $dir=$program; |
| 457 | $dir=~m#(.*)/#; |
| 458 | $dir=$1; |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 459 | use Cwd; |
| 460 | $nowdir=getcwd; |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 461 | chdir($dir); |
Adam Sacarny | 9f1d5a7 | 1999-09-10 13:53:20 +0000 | [diff] [blame] | 462 | if (!($outfile =~ /\//) and $outfile ne "no file") { |
| 463 | $outfile = "$nowdir/$outfile"; |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 464 | } |
Adam Sacarny | 9f1d5a7 | 1999-09-10 13:53:20 +0000 | [diff] [blame] | 465 | if (!($dbgoutfile =~ /\//) and $dbgoutfile ne "no file") { |
| 466 | $dbgoutfile = "$nowdir/$dbgoutfile"; |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 467 | } |
Adam Sacarny | 9f1d5a7 | 1999-09-10 13:53:20 +0000 | [diff] [blame] | 468 | if (!($tmpoutfile =~ /\//)) { |
| 469 | $tmpoutfile = "$nowdir/$tmpoutfile"; |
| 470 | } |
| 471 | $SIG{CHLD}=$SIG{CLD}=sub { wait }; |
| 472 | if ($dbgoutfile ne "no file") { |
| 473 | unlink("$dbgoutfile"); |
| 474 | if ($pid=fork()) { |
| 475 | } |
| 476 | elsif (defined $pid) { |
| 477 | close(0);close(1);close(2); |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 478 | exec "echo quit | WINEDEBUG=$debugopts $wineloc $extraops \"$program\" > $dbgoutfile 2>&1"; |
Adam Sacarny | 9f1d5a7 | 1999-09-10 13:53:20 +0000 | [diff] [blame] | 479 | } |
| 480 | else { |
| 481 | die "couldn't fork"; |
| 482 | } |
| 483 | while (kill(0, $pid)) { |
| 484 | sleep(5); |
| 485 | $last = `tail -n 5 $dbgoutfile | grep Wine-dbg`; |
| 486 | if ($last =~ /Wine-dbg/) { |
| 487 | kill "TERM", $pid; |
| 488 | break; |
| 489 | } |
| 490 | } |
| 491 | if ($outfile ne "no file") { |
| 492 | $lastlines=`tail -n $lastnlines $dbgoutfile`; |
| 493 | system("gzip $dbgoutfile"); |
| 494 | &generate_outfile; |
| 495 | } |
| 496 | else { |
| 497 | system("gzip $dbgoutfile"); |
| 498 | } |
| 499 | } |
| 500 | elsif ($outfile ne "no file" and $dbgoutfile eq "no file") { |
| 501 | if ($pid=fork()) { |
| 502 | } |
| 503 | elsif (defined $pid) { |
| 504 | close(0);close(1);close(2); |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 505 | exec "echo quit | WINEDEBUG=$debugopts $wineloc $extraops \"$program\" 2>&1| tee $tmpoutfile | tail -n $lastnlines > $outfile"; |
Adam Sacarny | 9f1d5a7 | 1999-09-10 13:53:20 +0000 | [diff] [blame] | 506 | } |
| 507 | else { |
| 508 | die "couldn't fork"; |
| 509 | } |
| 510 | print "$outfile $tmpoutfile"; |
| 511 | while (kill(0, $pid)) { |
| 512 | sleep(5); |
| 513 | $last = `tail -n 5 $tmpoutfile | grep Wine-dbg`; |
| 514 | if ($last =~ /Wine-dbg/) { |
| 515 | kill "TERM", $pid; |
| 516 | break; |
| 517 | } |
| 518 | } |
| 519 | unlink($tmpoutfile); |
| 520 | open(OUTFILE, "$outfile"); |
| 521 | while (<OUTFILE>) { |
| 522 | $lastlines .= $_; |
| 523 | } |
| 524 | close(OUTFILE); |
| 525 | unlink($outfile); |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 526 | &generate_outfile; |
| 527 | } |
| 528 | else { |
| 529 | $var27 = qq{ |
| 530 | I guess you don't want me to make any debugging output. I'll send |
| 531 | it to your terminal. This will be a *lot* of output -- hit enter to |
| 532 | continue, control-c to quit. |
| 533 | Repeat: this will be a lot of output! |
| 534 | }; |
| 535 | print do_var($var27); |
| 536 | $blah=<STDIN>; |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 537 | system("$wineloc WINEDEBUG=$debugopts $extraops \"$program\""); |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 538 | } |
| 539 | sub generate_outfile { |
Adam Sacarny | 9f1d5a7 | 1999-09-10 13:53:20 +0000 | [diff] [blame] | 540 | open(OUTFILE,">$outfile"); |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 541 | print OUTFILE <<EOM; |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 542 | Auto-generated debug report by Wine Quick Debug Report Maker Tool: |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 543 | WINE Version: $winever |
| 544 | Windows Version: $winver |
| 545 | Distribution: $dist |
| 546 | Kernel Version: $kernelver |
| 547 | OS Type: $ostype |
| 548 | CPU: $cpu |
| 549 | GCC Version: $gccver |
| 550 | Program: $progname |
| 551 | Program Type: $progbits |
Ivan Leo Murray-Smith | 62437ad | 2004-03-27 20:42:34 +0000 | [diff] [blame] | 552 | Debug Options: WINEDEBUG=$debugopts |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 553 | Other Extra Commands Passed: $extraops |
| 554 | Extra ./configure Commands: $configopts |
Alexandre Julliard | 7cae558 | 2002-06-01 02:55:48 +0000 | [diff] [blame] | 555 | Wine Dependencies: |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 556 | $wineneeds |
| 557 | Last $lastnlines lines of debug output follows: |
| 558 | $lastlines |
| 559 | I have a copy of the full debug report, if it is needed. |
| 560 | Thank you! |
| 561 | EOM |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 562 | } |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 563 | $var22 = qq{ |
Dimitrie O. Paun | c023254 | 2003-11-26 03:55:01 +0000 | [diff] [blame] | 564 | Great! We're finished making the debug report. Please go to http://bugs.winehq.org |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 565 | and enter it as a new bug. Check that nobody has already reported the same bug! |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 566 | }; |
| 567 | $var28 = qq{ |
| 568 | The filename for the formatted report is: |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 569 | $outfile |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 570 | }; |
| 571 | $var29 = qq{ |
Adam the Jazz Guy | c176162 | 1999-01-26 17:22:15 +0000 | [diff] [blame] | 572 | The filename for the compressed full debug is: |
| 573 | $dbgoutfile.gz |
| 574 | Note that it is $dbgoutfile.gz, since I compressed it with gzip for you. |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 575 | }; |
| 576 | $var30 = qq{ |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 577 | If you have any problems with this bug reporting tool, |
Dimitrie O. Paun | c023254 | 2003-11-26 03:55:01 +0000 | [diff] [blame] | 578 | please submit a bug report to Wine bugtracking system at http://bugs.winehq.org |
Ivan Leo Murray-Smith | a7bdb74 | 2003-11-25 01:47:22 +0000 | [diff] [blame] | 579 | or tell the Wine newsgroup (comp.emulators.ms-windows.wine). |
Adam the Jazz Guy | b5e0271 | 1999-02-09 14:07:49 +0000 | [diff] [blame] | 580 | }; |
| 581 | print do_var($var22); |
Adam Sacarny | c85f099 | 1999-04-25 09:20:40 +0000 | [diff] [blame] | 582 | print do_var($var28) if $outfile ne "no file"; |
| 583 | print do_var($var29) if $dbgoutfile ne "no file"; |
| 584 | print do_var($var30); |