Я пытаюсь вызвать пользовательскую функцию GDB, передавая строковые аргументы. Строковый аргумент внедряется в строковую команду, передаваемую интерпретатору Mi2.
Среда Gdb
GNU.gdb. (GDB) .8.1 (This.GDB .was.configured.as. \ "x86_64-p c - linux -gnu)
/ usr / local / bin / gdb -q -nx --interpreter = mi2 --data-directory = / home / george / Downloads / gdb-8.1 / gdb / data-directory
Мой initgdb.cfg содержит функции
#setvar #$arg0=refId,$arg1=varname,$arg2=varvalue
define setvar
set variable $arg1 = $arg2
showvar $arg0 $arg1
end
#showvar $ref $var
define showvar
set $val = $_as_string($arg1)
printf "ref=%d,val=%s", $arg0,$val
echo ",EOV"
end
Test1
интерпретатор-exe c консоль "setvar 998 gstr_10chars \" newval \ ""
Ошибка: проблема при разборе аргументов: интерпретатор-exe c консоль \ "setvar 998 gstr_10chars \" newval \ "\" "
Test2
интерпретатор-exe c консоль" setvar 998 gstr_10chars newval "
Ошибка: в текущем контексте нет символа \" newval \ ".
Приведенные выше тесты предполагают, что" newval "является значением моего строкового аргумента. Каков правильный метод / формат для передачи его в виде строки в функцию setvar?