You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
55 lines
1.3 KiB
55 lines
1.3 KiB
# |
|
# Various PX4-specific macros |
|
# |
|
source Debug/NuttX |
|
source Debug/ARMv7M |
|
|
|
echo Loading PX4 GDB macros. Use 'help px4' for more information.\n |
|
|
|
define px4 |
|
echo Use 'help px4' for more information.\n |
|
end |
|
|
|
document px4 |
|
. Various macros for working with the PX4 firmware. |
|
. |
|
. perf |
|
. Prints the state of all performance counters. |
|
. |
|
. Use 'help <macro>' for more specific help. |
|
end |
|
|
|
|
|
define _perf_print |
|
set $hdr = (struct perf_ctr_header *)$arg0 |
|
#printf "%p\n", $hdr |
|
printf "%s: ", $hdr->name |
|
# PC_COUNT |
|
if $hdr->type == 0 |
|
set $count = (struct perf_ctr_count *)$hdr |
|
printf "%llu events\n", $count->event_count |
|
end |
|
# PC_ELPASED |
|
if $hdr->type == 1 |
|
set $elapsed = (struct perf_ctr_elapsed *)$hdr |
|
printf "%llu events, %lluus elapsed, min %lluus, max %lluus\n", $elapsed->event_count, $elapsed->time_total, $elapsed->time_least, $elapsed->time_most |
|
end |
|
# PC_INTERVAL |
|
if $hdr->type == 2 |
|
set $interval = (struct perf_ctr_interval *)$hdr |
|
printf "%llu events, %llu avg, min %lluus max %lluus\n", $interval->event_count, ($interval->time_last - $interval->time_first) / $interval->event_count, $interval->time_least, $interval->time_most |
|
end |
|
end |
|
|
|
define perf |
|
set $ctr = (sq_entry_t *)(perf_counters.head) |
|
while $ctr != 0 |
|
_perf_print $ctr |
|
set $ctr = $ctr->flink |
|
end |
|
end |
|
|
|
document perf |
|
. perf |
|
. Prints performance counters. |
|
end
|
|
|