This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [PATCH] GDB testsuite: Suppress GCC's colored output
- From: Andreas Arnez <arnez at linux dot vnet dot ibm dot com>
- To: Simon Marchi <simon dot marchi at polymtl dot ca>
- Cc: gdb-patches at sourceware dot org
- Date: Thu, 03 Aug 2017 13:13:35 +0200
- Subject: Re: [PATCH] GDB testsuite: Suppress GCC's colored output
- Authentication-results: sourceware.org; auth=none
- References: <m3vam527qh.fsf@oc1027705133.ibm.com> <7b9c299818a8b32b0198e5d016d47abd@polymtl.ca>
On Wed, Aug 02 2017, Simon Marchi wrote:
> On 2017-08-02 19:35, Andreas Arnez wrote:
>> Newer GCC versions yield colored diagnostic messages by default, which
>> may
>> be useful when executing GDB interactively from a terminal. But when
>> run
>> from a GDB test case, the compiler output is written into gdb.log, where
>> such escape sequences are usually more inhibiting than helpful to the
>> evaluation of test results. So this patch suppresses that.
>
> That's because you are not using the right viewer :). Try "less -R
> gdb.log", you should see the rainbow.
Right... That's why I wrote "usually". Such as when using "grep",
loading the file into an editor, pasting the error message into an
e-Mail, etc.
>
>>
>> gdb/testsuite/ChangeLog:
>>
>> * lib/gdb.exp (gdb_compile): Suppress GCC's coloring of messages.
>> ---
>> gdb/testsuite/lib/gdb.exp | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/gdb/testsuite/lib/gdb.exp b/gdb/testsuite/lib/gdb.exp
>> index 3d3eaab..9a5c27f 100644
>> --- a/gdb/testsuite/lib/gdb.exp
>> +++ b/gdb/testsuite/lib/gdb.exp
>> @@ -3552,6 +3552,9 @@ proc gdb_compile {source dest type options} {
>> }
>> }
>>
>> + # Stop the compiler from producing colored output.
>> + setenv GCC_COLORS ""
>> +
>> set result [target_compile $source $dest $type $options]
>>
>> # Prune uninteresting compiler (and linker) output.
>
> I was wondering why GCC showed colors even though it's not invoked
> "interactively". Dejagnu uses expect's spawn to spawn processes,
> including the compiler. spawn allocates a tty for the subprocess, which
> is what GCC checks to determine whether or not to enable colors.
Right. If spawn used a pipe instead of a pseudo-tty, then GCC wouldn't
show colors.
> You patch LGTM, but please leave the patch for review for a few days, then
> push it if nobody says anything.
OK.
--
Andreas