[PATCH v4] GDB PR tdep/8282: MIPS: Wire in `set disassembler-options'

Simon Marchi simon.marchi@polymtl.ca
Thu Jun 21 19:19:00 GMT 2018


On 2018-06-21 14:28, Maciej W. Rozycki wrote:
> Hi Simon,
> 
>> This patch looks good from the GDB side (with one nit in the test 
>> below), but
>> somebody from binutils would need to review the bits in 
>> opcodes/include.
> 
>  Yes, that's why I requested it separately and posted to both mailing
> lists.
> 
>> > +# Verify ABI overrides.
>> > +mips_disassemble_test bar "move\t\\\$2,\\\$8" "disassemble ABI (numeric)"
>> > +gdb_test "set disassembler-options"
>> > +gdb_test "set mips abi o32"
>> > +mips_disassemble_test bar "move\tv0,t0" "disassemble ABI (o32)"
>> > +gdb_test "set mips abi n32"
>> > +mips_disassemble_test bar "move\tv0,a4" "disassemble ABI (n32)"
>> > +gdb_test "set mips abi n64"
>> > +mips_disassemble_test bar "move\tv0,a4" "disassemble ABI (n64)"
>> 
>> Avoid parenthesis at the end of test names:
>> 
>>   
>> https://sourceware.org/gdb/wiki/GDBTestcaseCookbook#Do_not_use_.22tail_parentheses.22_on_test_messages
> 
>  Thanks for the pointer.  Although it makes sense to me at first glance
> that's quite a recent change to a long-established practice.  Perhaps 
> it
> could have been avoided by coding the regression analysis tools 
> referred
> more carefully, but I won't be questioning the decision at this point.

That's because of how DejaGNU formats test messages, for example when 
there is a timeout (as shown in the example on the wiki).  We don't have 
control over that, and we don't want "foo" and "foo (timeout)" to be 
considered as two different tests.

>  The wiki does not indicate a suggested replacement however and I would
> rather avoid creating a mess where individual tests would use different
> approaches.  Offhand I'd be inclined to use brackets, either square or
> angled.  What has been the new practice then?

Often, parenthesis would be used when the same series of tests are ran 
with different settings.  For example:

   foo (non-stop)
   bar (non-stop)
   foo (all-stop)
   bar (all-stop)

For this it's useful to use prefixes, with with_test_prefix, for 
example.

with_test_prefix "non-stop" {
   ...
}

with_test_prefix "all-stop" {
   ...
}

Or even

foreach_with_prefix mode {all-stop non-stop} {
   ...
}


That does not really apply to your case though.  I think here you can 
just remove the parenthesis, and maybe add a comma.

   mips_disassemble_test bar "move\tv0,a4" "disassemble ABI, n64"

As long as it's clear.

Simon



More information about the Binutils mailing list