У меня есть вспомогательная функция в моем ~ / .gdbinit:
define timeme
set $last=clock()
n
set $timing=clock() - $last
if $timing>$arg0
printf "***long***\n"
end
printf "%d cycles, %f seconds\n", $timing, (float)$timing / 1000000
end
Возможно, вам придется настроить 1000000 в зависимости от того, какая у вас реализация CLOCKS_PER_SEC на вашей платформе.
Использованиетривиально;запустите помощника, который выполнит следующий шаг и выдаст информацию о времени:
Breakpoint 2, install_new_payload_from_meta (snmp_meta=0x7eee81c0, pkt=0x0, entry=0x7d4f4e58) at /home/sgillibr/savvi-dc-snmp/recipies.c:187
(gdb) timeme 100000
***long***
580000 cycles, 0.580000 seconds
(gdb)
Очевидно, что разрешение может быть недостаточным для некоторых нужд, хотя оно оказывается очень полезным.