argv
это не строка, это char**
- указатель на первую из нескольких возможных строк C.
Я думаю, что вы ищете:
print argv[0]
print argv[1]
...
Или, если вы хотите использовать printf:
printf "%s\n", argv[0]
Но в таком простом случае на самом деле нет оснований, поскольку GDB знает, как печатать char*
строки.
Или, если вы хотите быть модным, это работает:
print *argv@argc
Синтаксис FOO@NUM
заставляет его печатать массив из NUM
элементов, начиная с FOO
.И я понятия не имею, почему разыменование работает, но оно работает - я думаю, что GDB просто так хорош.Кто-нибудь просветит меня?