Могу ли я использовать переменную вместо числа повторов в команде изучения GDB, адрес x/10xw
В команде Examine GDB, x/10xw Address
, Могу ли я использовать переменную вместо repeat count
т.е. я могу использовать переменную вместо 10, как x/($var)xw Address
?
Вот так выглядит мой.gdbinit. Мне нужно сделать некоторые вычисления и использовать переменную ( var3)
определить print_sn_list_hex
set $var1 = $mcache->elem_size
set $var2 = $mcache->blocking_factor
set $var3 = ($var1) * ($var2) / 4
x/$var3xw $sess # I want to pass a variable here
end
конец
2 ответа
Решение
Большое спасибо, Том, eval
Команда, которую вы упомянули выше, работает отлично. Я использовал более старую версию GDB, поэтому она изначально создала проблему. сейчас работает отлично. мой новый код выглядит так:
определить print_sn_list_hex
set $var1 = $mcache->elem_size
set $var2 = $mcache->blocking_factor
set $var3 = ($var1) * ($var2) / 4
eval "x/%dxw %p",$var3,$sess
Не напрямую, но вы можете использовать команду gdb "eval", чтобы получить этот эффект, или вы можете написать скрипт Python, чтобы выполнить практически любой вид форматирования, который вы пожелаете.