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

Reply via email to