Как напечатать строку, на которую указывает указатель при отладке с использованием GDB? - PullRequest
13 голосов
/ 24 ноября 2010

Как я могу проверить строку, на которую указывает указатель при переходе через программу, использующую GDB?

Я вижу, что указатель указывает на 0x82c6e10.Я знаю, что это строка.Как мне его распечатать?

Использование printf("%s\n", 0x82c6e10) дает Bad format string, missing '"'. Тот факт, что GDB не жалуется на неизвестную команду, говорит мне, что решение - это некий вариант того, что я делаю.Я прав?Я пытался избежать кавычек, но это не помогло.

Ответы [ 4 ]

18 голосов
/ 24 ноября 2010

Используйте x вместо p:

x /s 0x82c6e10
15 голосов
/ 24 ноября 2010

Здесь printf - это не функция, а команда gdb.Опустите скобки.

Еще лучше, просто используйте команду print или x в формате /s

(Вы можете вызвать функцию C printf() с помощьюкоманда call.) `

gdb имеет обширную справку, доступную с командой help.Попробуй.

14 голосов
/ 24 ноября 2010

Попробуйте:

print (char *)pointer
3 голосов
/ 24 ноября 2010

печать (символ *) 0x82c6e10

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