Поскольку целью gdb является проверка программ, обычное предположение в выражениях состоит в том, что идентификатор именует некоторую переменную, принадлежащую текущей программе. Но GDB также имеет «удобные переменные отладчика». Имя, начинающееся с символа $
, представляет собой либо регистр (один из нескольких, определяемых целевой архитектурой ЦП исполняемого файла), либо вспомогательную переменную отладчика.
Итак:
(gdb) set $i = 4
ОднакоЯ определенно не рекомендую использовать их «как способ узнать немного больше о языке». GDB будет поддерживать большую часть синтаксиса C для выражений, которые их включают, но это только фальсификация, и они на самом деле совсем не такие, как переменная C. Только для одного примера вспомогательная переменная никогда не имеет адреса. Таким образом, любой эксперимент с этими переменными просто выявит поведение языка подсказок gdb и такого рода переменных, которые не всегда будут такими же, как язык C и его переменные.