Как привести строковые аргументы для командных функций - PullRequest
0 голосов
/ 06 марта 2020

Я пытаюсь вызвать пользовательскую функцию 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?

...