Подтвердить что ты не робот

Как сравнить сохраненную строковую переменную в GDB?

У меня есть переменная с именем x в GDB, которую я хочу сравнить со строкой.

gdb $ print $x
$1 = 0x1001009b0 "hello"

но сравнение с

if $x == "hello"

не работает.

4b9b3361

Ответ 1

(gdb) p strcmp($x, "hello") == 0
$1 = 1

Если вам жаль, что у вас не работает программа (выполнение файла ядра или что-то еще), вы можете сделать что-то в виду следующего, если ваш gdb является достаточно новым, чтобы иметь python:

(gdb) py print cmp(gdb.execute("output $x", to_string=True).strip('"'), "hello") == 0
True

или

(gdb) define strcmp
>py print cmp(gdb.execute("output $arg0", to_string=True).strip('"'), $arg1)
>end
(gdb) strcmp $x "hello"
0