Code: Select all
set $buflen = ch.dbg.trace_buffer.size
set $i=ch.dbg.trace_buffer.ptr-ch.dbg.trace_buffer.buffer-1
if $i < 0
set $i = $buflen-1
end
set $ctr=0
while (ch.dbg.trace_buffer.buffer[$i].type != 0) && ($ctr < ($buflen-1))
printf "%d,t=%d,rt=%d ", $ctr, ch.dbg.trace_buffer.buffer[$i].time, ch.dbg.trace_buffer.buffer[$i].rtstamp
if ch.dbg.trace_buffer.buffer[$i].type == 1
echo \ SWITCH \
output ch.dbg.trace_buffer.buffer[$i].u.sw
end
if ch.dbg.trace_buffer.buffer[$i].type == 2
echo \ ISR_ENTER \
output ch.dbg.trace_buffer.buffer[$i].u.isr
end
if ch.dbg.trace_buffer.buffer[$i].type == 3
echo \ ISR_LEAVE \
output ch.dbg.trace_buffer.buffer[$i].u.isr
end
if ch.dbg.trace_buffer.buffer[$i].type == 4
echo \ HALT \
output ch.dbg.trace_buffer.buffer[$i].u.halt
end
if ch.dbg.trace_buffer.buffer[$i].type == 5
echo \ USER \
printf "%s,%s",(char*)ch.dbg.trace_buffer.buffer[$i].u.user.up1,(char*)ch.dbg.trace_buffer.buffer[$i].u.user.up2
end
echo \n
if ($i == 0)
set $i = $buflen-1
else
set $i = $i-1
end
set $ctr = $ctr + 1
end
Prints out all of the virtual timers:
Code: Select all
printf "Virtual Timers\n"
set $ctr = 0
set $p = ch.vtlist.next
while $p != &ch.vtlist
printf "%d\tt=%d\tpar=0x%08x\tfunc= ", $ctr, $p->delta, $p->par
output $p->func
echo \n
set $ctr = $ctr + 1
set $p = $p->next
end
Other debug info, and available stack for all threads (excluding main):
Code: Select all
printf "Debug Info\n"
printf "isr_cnt=%d\tlock_cnt=%d\ttm_cal=%d\tpanic=", ch.dbg.isr_cnt, ch.dbg.lock_cnt, ch.tm.offset
output ch.dbg.panic_msg
echo \n\n
printf "Thread stack used\n"
set $filler = 0x5555555555555555
set $max_stack_size = 0xFFFF
set $tp = ch.rlist.newer
set $ctr = 0
while $tp != &ch.rlist
printf "%d, %s, ", $ctr, $tp->name
output $tp->wabase
if strcmp($tp->name, "main") != 0
set $unused = 0
set $stk_ptr = (uint64_t *)$tp->wabase
while (*$stk_ptr == $filler) && ($unused < $max_stack_size)
set $stk_ptr = $stk_ptr + 1
set $unused = $unused + sizeof(uint64_t)
end
printf ", unused stack = %d", $unused
end
echo \n
set $ctr = $ctr + 1
set $tp = $tp->newer
end