r231989 - Driver: Print the clang version and original command in crash scripts
Justin Bogner
mail at justinbogner.com
Wed Mar 11 22:43:37 PDT 2015
"Robinson, Paul" <Paul_Robinson at playstation.sony.com> writes:
>> -----Original Message-----
>> From: cfe-commits-bounces at cs.uiuc.edu [mailto:cfe-commits-
>> bounces at cs.uiuc.edu] On Behalf Of Justin Bogner
>> Sent: Wednesday, March 11, 2015 5:15 PM
>> To: cfe-commits at cs.uiuc.edu
>> Subject: r231989 - Driver: Print the clang version and original command in
>> crash scripts
>>
>> Author: bogner
>> Date: Wed Mar 11 19:14:35 2015
>> New Revision: 231989
>>
>> URL: http://llvm.org/viewvc/llvm-project?rev=231989&view=rev
>> Log:
>> Driver: Print the clang version and original command in crash scripts
>>
>> When a crash report script doesn't work for a reproduction on your
>> machine for one reason or another, it can be really tricky to figure
>> out why not. The compiler version that crashed and the original
>> command line before stripping flags are very helpful when this comes
>> up.
>>
>> Modified:
>> cfe/trunk/lib/Driver/Driver.cpp
>> cfe/trunk/test/Driver/crash-report-modules.m
>> cfe/trunk/test/Driver/crash-report.c
>>
>> Modified: cfe/trunk/lib/Driver/Driver.cpp
>> URL: http://llvm.org/viewvc/llvm-
>> project/cfe/trunk/lib/Driver/Driver.cpp?rev=231989&r1=231988&r2=231989&vie
>> w=diff
>> ==========================================================================
>> ====
>> --- cfe/trunk/lib/Driver/Driver.cpp (original)
>> +++ cfe/trunk/lib/Driver/Driver.cpp Wed Mar 11 19:14:35 2015
>> @@ -551,6 +551,9 @@ void Driver::generateCompilationDiagnost
>> Diag(clang::diag::note_drv_command_failed_diag_msg)
>> << "Error generating run script: " + Script + " " + EC.message();
>> } else {
>> + ScriptOS << "# Crash reproducer for " << getClangFullVersion() <<
>> "\n"
>> + << "# Original command: ";
>> + Cmd.Print(ScriptOS, "\n", /*Quote=*/true);
>> Cmd.Print(ScriptOS, "\n", /*Quote=*/true, &CrashInfo);
>> Diag(clang::diag::note_drv_command_failed_diag_msg) << Script;
>> }
>>
>> Modified: cfe/trunk/test/Driver/crash-report-modules.m
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/crash-
>> report-modules.m?rev=231989&r1=231988&r2=231989&view=diff
>> ==========================================================================
>> ====
>> --- cfe/trunk/test/Driver/crash-report-modules.m (original)
>> +++ cfe/trunk/test/Driver/crash-report-modules.m Wed Mar 11 19:14:35 2015
>> @@ -25,7 +25,9 @@ const int x = MODULE_MACRO;
>> // CHECKSRC: @import simple;
>> // CHECKSRC: const int x = 10;
>>
>> -// CHECKSH: "-cc1"
>> +// CHECKSH: # Crash reproducer
>> +// CHECKSH-NEXT: # Original command: {{.*$}}
>> +// CHECKSH-NEXT: "-cc1"
>
> I thought -NEXT did the equivalent of {{.*$}} for you?
> Explicitly adding the regex seems harmless but makes me wonder if I'm
> misunderstanding something.
Without the regex FileCheck complained that it found the -NEXT match on
the same line. I guess this makes sense to check for in some other
cases. I added the regex to make sure we read past the whole line.
>> // CHECKSH: "-D" "FOO=BAR"
>> // CHECKSH-NOT: "-fmodules-cache-path=/tmp/"
>> // CHECKSH: "crash-report-modules-{{[^ ]*}}.m"
>>
>> Modified: cfe/trunk/test/Driver/crash-report.c
>> URL: http://llvm.org/viewvc/llvm-project/cfe/trunk/test/Driver/crash-
>> report.c?rev=231989&r1=231988&r2=231989&view=diff
>> ==========================================================================
>> ====
>> --- cfe/trunk/test/Driver/crash-report.c (original)
>> +++ cfe/trunk/test/Driver/crash-report.c Wed Mar 11 19:14:35 2015
>> @@ -18,7 +18,9 @@
>> // CHECK-NEXT: note: diagnostic msg: {{.*}}crash-report-{{.*}}.c
>> FOO
>> // CHECKSRC: FOO
>> -// CHECKSH: "-cc1"
>> +// CHECKSH: # Crash reproducer
>> +// CHECKSH-NEXT: # Original command: {{.*$}}
>
> Ditto here.
> Thanks,
> --paulr
>
>> +// CHECKSH-NEXT: "-cc1"
>> // CHECKSH: "-main-file-name" "crash-report.c"
>> // CHECKSH: "-D" "FOO=BAR"
>> // CHECKSH-NOT: "-F/tmp/"
>>
>>
>> _______________________________________________
>> cfe-commits mailing list
>> cfe-commits at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits
More information about the cfe-commits
mailing list