Shell 如何将gdb命令的输出存储到变量中?
我试图将gdb命令的输出存储到gdb变量中。我是按照老师的指示做的。但当我打印变量时,它显示为空Shell 如何将gdb命令的输出存储到变量中?,shell,unix,gdb,Shell,Unix,Gdb,我试图将gdb命令的输出存储到gdb变量中。我是按照老师的指示做的。但当我打印变量时,它显示为空 (gdb) shell echo set \$pop_ele=\"$(tail -n 1 pop_stack)\" (gdb) p/x $pop_ele 我的pop_堆栈文件包含此 20 268435372 我使用以下命令将pop_堆栈中的值268435372存储到gdb变量$pop_ele中。并尝试将值打印为十六进制。但是,$pop_ele显示为空 (gdb) shell echo set \
(gdb) shell echo set \$pop_ele=\"$(tail -n 1 pop_stack)\"
(gdb) p/x $pop_ele
我的pop_堆栈文件包含此
20
268435372
我使用以下命令将pop_堆栈中的值268435372存储到gdb变量$pop_ele中。并尝试将值打印为十六进制。但是,$pop_ele显示为空
(gdb) shell echo set \$pop_ele=\"$(tail -n 1 pop_stack)\"
(gdb) p/x $pop_ele
输出:
set $pop_ele="268435372"
$8 = 0x0
我对p/x$pop_ele命令的期望输出是0xfffffac
请提供帮助。使用gdb 8.X,可以使用
shell
和source
执行依赖于外部数据的命令
shell echo set \$pop_ele=$(tail -n1 pop_stack) > gdb.tmp
source gdb.tmp