Как я могу грамматически напечатать частичную строку в макросе GDB - PullRequest
0 голосов
/ 20 января 2019

Вот структура в моем коде C:

struct ptr_len {
   char *ptr;
   int len;
};

Вот мой макрос GDB:

define dumper
    printf "ptr=%s\n", $arg0->ptr
end

Проблема в том, что строка может быть очень длинной.Я знаю, что могу сделать это, чтобы напечатать первые 10 символов:

define dumper
    printf "ptr=%.10s\n", $arg0->ptr
end

Но есть ли способ, которым я могу напечатать len символов?Следующее не работает:

define dumper
    printf "ptr=%.${arg1}s\n", $arg0->ptr
end

Нужно ли сначала создать вспомогательную переменную, которая содержит символы len, а затем вывести всю эту строку?Если так, есть ли простой способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...