Fix order of inferiors in "thread apply all"
Commit Message
This inserts missing parentheses in the calculation of the comparison
result between two different inferior numbers. The problem was found by
Philipp Rudo.
gdb/ChangeLog:
* thread.c (tp_array_compar): Insert missing parentheses.
gdb/testsuite/ChangeLog:
* gdb.multi/tids.exp: Test "thread apply all".
---
gdb/testsuite/gdb.multi/tids.exp | 6 ++++++
gdb/thread.c | 2 +-
2 files changed, 7 insertions(+), 1 deletion(-)
Comments
On 08/30/2016 03:36 PM, Andreas Arnez wrote:
> This inserts missing parentheses in the calculation of the comparison
> result between two different inferior numbers. The problem was found by
> Philipp Rudo.
Whoops.
>
> gdb/ChangeLog:
>
> * thread.c (tp_array_compar): Insert missing parentheses.
>
> gdb/testsuite/ChangeLog:
>
> * gdb.multi/tids.exp: Test "thread apply all".
OK.
Thanks,
Pedro Alves
On Tue, Aug 30 2016, Pedro Alves wrote:
> On 08/30/2016 03:36 PM, Andreas Arnez wrote:
>> This inserts missing parentheses in the calculation of the comparison
>> result between two different inferior numbers. The problem was found by
>> Philipp Rudo.
>
> Whoops.
>
>>
>> gdb/ChangeLog:
>>
>> * thread.c (tp_array_compar): Insert missing parentheses.
>>
>> gdb/testsuite/ChangeLog:
>>
>> * gdb.multi/tids.exp: Test "thread apply all".
>
> OK.
Thanks, pushed.
--
Andreas
@@ -224,6 +224,12 @@ with_test_prefix "two inferiors" {
thr_apply_info_thr "1.1-2 2.2-3" \
"1.1 1.2 2.2 2.3"
+ # All threads.
+ thread_apply "all" \
+ "2.3 2.2 2.1 1.3 1.2 1.1"
+ thread_apply "all -ascending" \
+ "1.1 1.2 1.3 2.1 2.2 2.3"
+
# Now test using GDB convenience variables.
gdb_test "p \$inf = 1" " = 1"
@@ -1725,7 +1725,7 @@ tp_array_compar (const void *ap_voidp, const void *bp_voidp)
if (a->inf->num != b->inf->num)
{
- return ((a->inf->num > b->inf->num) - (a->inf->num < b->inf->num)
+ return (((a->inf->num > b->inf->num) - (a->inf->num < b->inf->num))
* (tp_array_compar_ascending ? +1 : -1));
}