【问题标题】:gdb eval "%s" replacement errorgdb eval "%s" 替换错误
【发布时间】:2018-02-13 20:41:08
【问题描述】:

对不起,我努力想出一些可以“描述”问题的标题。很抱歉,如果该问题已被提出,但我无法找到相关内容。

所以我试图在 eval 函数中使用字符串类型的 gdb 便利变量。

首先,由于我刚开始使用 gdb,所以我想确保我了解发生了什么,所以我尝试了以下操作

(gdb) eval "!echo 5"
5
(gdb) eval "!echo 5+8"
5+8
(gdb) eval "!echo %d", 5
5
(gdb) eval "!echo %d", 5+8
13
(gdb) set $anumber = 12
(gdb) eval "!echo %d", $anumber
12

到目前为止一切顺利。 然后我尝试了这个,但我不明白为什么它在最后一行对我大喊大叫。

(gdb) eval "!echo hello"
hello
(gdb) eval "!echo \"hello\""
hello
(gdb) eval "!echo 'hello'"
hello
(gdb) set $hellostr = "hello"
(gdb) eval "!echo %s", $hellostr
You can't do that without a process to debug.

我有什么遗漏吗?

如果这可能有帮助,请调用 show versionproduce

GNU gdb (Ubuntu 7.11.1-0ubuntu1~16.5) 7.11.1

【问题讨论】:

    标签: gdb


    【解决方案1】:

    这只是 gdb 中的 a bug。目前 gdb 总是试图在低级分配字符串。但是,这并不总是真正必要的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-01-13
      • 2014-03-13
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-04
      相关资源
      最近更新 更多