[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linaro-toolchain
Subject:    perf issue: etm traces are dumped to the wrong AUX buffer
From:       Zied Guermazi <zied.guermazi () trande ! de>
Date:       2020-12-14 23:25:37
Message-ID: 83709771-efc5-5ff5-01d6-956890d14f9b () trande ! de
[Download RAW message or body]

hi

I am using perf syscall to collect etm traces for btraces implementation 
in GDB running on Linux kernel 5.9.1 on a cortex A7. in this test case, 
I am debugging a multi-threaded process (2 pthreads). For each thread, 
GDB is calling the sys call perf_event_open and gives the corresponding 
thread ptid.lwp as argument. for each syscall, the AUX buffer is 
mmap(ped) to a dedicated memory. this is working for almost all test 
cases I have, except this one, where it has 50% failure rate when 
executed manually. 90% failure rate when executed from a script.

the source code for debugged program is listed below.

/* This testcase is part of GDB, the GNU debugger.

    Copyright 2013-2019 Free Software Foundation, Inc.

    Contributed by Intel Corp. <markus.t.metzger@intel.com>

    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
    the Free Software Foundation; either version 3 of the License, or
    (at your option) any later version.

    This program is distributed in the hope that it will be useful,
    but WITHOUT ANY WARRANTY; without even the implied warranty of
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    GNU General Public License for more details.

    You should have received a copy of the GNU General Public License
    along with this program. If not, see <http://www.gnu.org/licenses/>. */

#include <pthread.h>

static  pthread_barrier_t barrier;
static  int  global;

static  void  *
test(void  *arg)
{
   pthread_barrier_wait(&barrier);

   global=  42;  /* bp.1 */

   pthread_barrier_wait(&barrier);

   global=  42;  /* bp.2 */

   return  arg;
}

int
main  (void)
{
   pthread_t th;

   pthread_barrier_init(&barrier,  NULL,  2);
   pthread_create(&th,  NULL,  test,  NULL);

   test(NULL);

   pthread_join(th,  NULL);
   pthread_barrier_destroy(&barrier);

   return  0;  /* bp.3 */
}

in this test case, a breakpoint is set at the line containing the 
comment /* bp.1 */ , and we start collecting traces. a second breakpoint 
is set at the line containing the comment /* bp.2 */, and we analyze 
collected traces.

in a successful testcase we get both threads traces in dedicated buffers

thread 1
[Switching to thread 1 (Thread 0xb6ff9ca0 (LWP 8813))]
#0test  (arg=0x0) at/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:34
 34	  global = 42; /* bp.2 */
(gdb) info record
Active record target: record-btrace
Recording format: arm Processor CoreSight ETM Trace.
Buffer size: 8kB.
Recorded 126 instructions in 15 functions (0 gaps) for thread 1 (Thread 0xb6ff9ca0 \
(LWP 8813)). (gdb) record function-call-history /ilc
1	test	inst 1,9	at/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:30,32
 2	pthread_barrier_wait@plt	inst 10,12	at
3	pthread_barrier_wait	inst 13,32	at
4	__aeabi_uidivmod	inst 33,36	at
5	__udivsi3	inst 37,39	at
6	__udivsi3	inst 40,48	at
7	__aeabi_uidivmod	inst 49,52	at
8	pthread_barrier_wait	inst 53,77	at
9	__libc_do_syscall	inst 78,80	at
10	pthread_barrier_wait	inst 81,102	at
11	__aeabi_uidivmod	inst 103,106	at
12	__udivsi3	inst 107,109	at
13	__udivsi3	inst 110,118	at
14	__aeabi_uidivmod	inst 119,122	at
15	pthread_barrier_wait	inst 123,126	at

here is a log of the collected trace generic elements

cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_NO_SYNC
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_TRACE_ON
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_PE_CONTEXT
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_EXCEPTION
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_TRACE_ON
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_PE_CONTEXT
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
OCSD_GEN_TRC_ELEM_EXCEPTION

thread 2
[Switching to thread 2 (Thread 0xb6ea7460 (LWP 8816))]
#0test  (arg=0x0) at/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:34
 34	  global = 42; /* bp.2 */
(gdb) info record
Active record target: record-btrace
Recording format: arm Processor CoreSight ETM Trace.
Buffer size: 8kB.
Recorded 150 instructions in 20 functions (0 gaps) for thread 2 (Thread 0xb6ea7460 \
(LWP 8816)). (gdb) record function-call-history /ilc
1	test	inst 1,9	at/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:30,32
 2	pthread_barrier_wait@plt	inst 10,12	at
3	pthread_barrier_wait	inst 13,32	at
4	__aeabi_uidivmod	inst 33,36	at
5	__udivsi3	inst 37,39	at
6	__udivsi3	inst 40,48	at
7	__aeabi_uidivmod	inst 49,52	at
8	pthread_barrier_wait	inst 53,66	at
9	__aeabi_uidivmod	inst 67,70	at
10	__udivsi3	inst 71,73	at
11	__udivsi3	inst 74,82	at
12	__aeabi_uidivmod	inst 83,86	at
13	pthread_barrier_wait	inst 87,103	at
14	__libc_do_syscall	inst 104,106	at
15	pthread_barrier_wait	inst 107,126	at
16	__aeabi_uidivmod	inst 127,130	at
17	__udivsi3	inst 131,133	at
18	__udivsi3	inst 134,142	at
19	__aeabi_uidivmod	inst 143,146	at
20	pthread_barrier_wait	inst 147,150	at

here is a log of the collected trace generic elements

cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_NO_SYNC
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_TRACE_ON
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_PE_CONTEXT
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_EXCEPTION
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_TRACE_ON
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_PE_CONTEXT
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
OCSD_GEN_TRC_ELEM_EXCEPTION


in the failing test we got all traces in one buffer, the second one is empty

(gdb) thread 1
[Switching to thread 1 (Thread 0xb6ff9ca0 (LWP 8826))]
#0  test (arg=0x0) at \
/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:34
 34	  global = 42; /* bp.2 */
(gdb) info record
Active record target: record-btrace
Recording format: arm Processor CoreSight ETM Trace.
Buffer size: 8kB.
Recorded 276 instructions in 36 functions (0 gaps) for thread 1 (Thread 0xb6ff9ca0 \
(LWP 8826)). (gdb) record function-call-history /ilc 1
1	test	inst 1,9	at/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:30,32
 2	pthread_barrier_wait@plt	inst 10,12	at
3	pthread_barrier_wait	inst 13,32	at
4	__aeabi_uidivmod	inst 33,36	at
5	__udivsi3	inst 37,39	at
6	__udivsi3	inst 40,48	at
7	__aeabi_uidivmod	inst 49,52	at
8	pthread_barrier_wait	inst 53,77	at
9	__libc_do_syscall	inst 78,80	at
10	test	inst 81,88	at/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:30,32
 11	pthread_barrier_wait@plt	inst 89,91	at
12	pthread_barrier_wait	inst 92,111	at
13	__aeabi_uidivmod	inst 112,115	at
14	__udivsi3	inst 116,118	at
15	__udivsi3	inst 119,127	at
16	__aeabi_uidivmod	inst 128,131	at
17	pthread_barrier_wait	inst 132,145	at
18	__aeabi_uidivmod	inst 146,149	at
19	__udivsi3	inst 150,152	at
20	__udivsi3	inst 153,161	at
21	__aeabi_uidivmod	inst 162,165	at
22	pthread_barrier_wait	inst 166,182	at
23	__libc_do_syscall	inst 183,185	at
24	pthread_barrier_wait	inst 186,205	at
25	__aeabi_uidivmod	inst 206,209	at
26	__udivsi3	inst 210,212	at
27	__udivsi3	inst 213,221	at
28	__aeabi_uidivmod	inst 222,225	at
29	pthread_barrier_wait	inst 226,229	at
30	test	inst 230,230	at/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:34
 31	pthread_barrier_wait	inst 231,252	at
32	__aeabi_uidivmod	inst 253,256	at
33	__udivsi3	inst 257,259	at
34	__udivsi3	inst 260,268	at
35	__aeabi_uidivmod	inst 269,272	at
36	pthread_barrier_wait	inst 273,276	at



here is a log of the collected trace generic elements

cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_NO_SYNC
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_TRACE_ON
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_PE_CONTEXT
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_EXCEPTION
cs_etm_decoder_trace_element_callback: elem->elem_type 
OCSD_GEN_TRC_ELEM_NO_SYNC
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_TRACE_ON
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_PE_CONTEXT
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_EXCEPTION
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_TRACE_ON
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_PE_CONTEXT
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_EXCEPTION
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_TRACE_ON
cs_etm_decoder_trace_element_callback: elem->elem_type OCSD_GEN_TRC_ELEM_PE_CONTEXT
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
                OCSD_GEN_TRC_ELEM_INSTR_RANGE
--->cs_etm_decoder_trace_element_callback: elem->elem_type \
OCSD_GEN_TRC_ELEM_EXCEPTION

(gdb) thread 2
[Switching to thread 2 (Thread 0xb6ea7460 (LWP 8827))]
#0test  (arg=0x0) at/home/ubuntu/development/gdb/build/gdb/testsuite/../../../binutils-gdb/gdb/testsuite/gdb.btrace/multi-thread-step.c:34
 34	  global = 42; /* bp.2 */
(gdb) info record
Active record target: record-btrace
Recording format: arm Processor CoreSight ETM Trace.
Buffer size: 8kB.
Recorded 0 instructions in 0 functions (0 gaps) for thread 2 (Thread 0xb6ea7460 (LWP \
8827)). (gdb) record function-call-history /ilc 1
No trace.
(gdb)

is there any known issues for calling perf_event_open twice for two 
different threads?

is there any known issues for flushing traces when a switch between two 
threads takes place?

is there any known issue for tracing threads when switching happens due 
to a pthread_barrier_wait?

do you have any other hint to provide here?


Kind regards

Zied Guermazi

_______________________________________________
linaro-toolchain mailing list
linaro-toolchain@lists.linaro.org
https://lists.linaro.org/mailman/listinfo/linaro-toolchain


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic