r231989 - Driver: Print the clang version and original command in crash scripts

Robinson, Paul Paul_Robinson at playstation.sony.com
Wed Mar 11 19:49:45 PDT 2015



> -----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.

>  // 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