Так что у меня этот сценарий GDB команды:Как печатать только значение переменной в gdb?
$ cat gdb_commands.txt
set pagination off
set logging file output.txt
set logging on
file stuff
b *0x80000014
run
echo ***DIFF THIS***\n
echo eax:
print $eax
echo ebx:
print $ebx
echo ecx:
print $ecx
echo edx:
print $edx
echo ***DIFF THIS END***\n
quit
Если я запускаю его в я получаю это:
$ gdb -q -x gdb_commands.txt
Breakpoint 1 at 0x80000014
Breakpoint 1, 0x80000014 in _start()
***DIFF THIS***
eax:$1 = 1
ebx:$2 = 2
ecx:$3 = 3
edx:$4 = 4
***DIFF THIS END***
A debugging session is active.
Inferior 1 [process 8947] will be killed.
Quit anyway? (y or n) [answered Y; input not from terminal]
Так есть что уродливый знак доллара вещь. Я могу sed
, но я хотел бы иметь gdb для этого. Является ли это возможным?
(Причина я использовать GDB, как это потому, что мы пишем эмулятор, и хотите, чтобы проверить, если он ведет себя правильно.)