store gdb call expr返回值

时间:2013-07-01 22:29:44

标签: c gdb red-black-tree

如何在gdb中存储调用 expr 的返回值?例如:

(gdb) call rbt_next(&some_global,0x0)
$2 = (rbt_node *) 0x7169ee00

rbt_next返回指针的下一个节点。但是,当我尝试这样做时:

(gdb) set $w_sess = call rbt_next(&some_global,0x0)
Error: No symbol "call" in current context

我收到上述错误。

我想要这个的原因是因为我需要遍历全局rb树来查找匹配项。我想要完成的是: -

while $w_sess = call rbt_next($some_global, $c_sess) != 0x0
    if $c_sess == $w_sess
        printf "Sess found in tree\n"
    else
        printf "Sess not found\n"
    end
end

1 个答案:

答案 0 :(得分:2)

忽略call这个词。 set $foo =之后的部分只是一个普通的表达式,就像您使用print一样。