Могу ли я использовать переменную вместо числа повторов в команде изучения 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, чтобы выполнить практически любой вид форматирования, который вы пожелаете.

Другие вопросы по тегам