GDB - 不显示呼叫命令的结果

时间:2018-01-25 18:38:18

标签: c gdb

我可以使用相当精细的打印功能来帮助我调试。不幸的是,它直接打印到指定的文件流,而不是返回一个字符串(它返回一些不相关的值)。当我在GDB中调用call时,help call似乎没有任何参数。是否真的无法隐藏call命令的返回结果?还是有另一个我应该娱乐的命令?

1 个答案:

答案 0 :(得分:0)

我们可以将函数的结果转换为void以丢弃其值。

MWE

<强> callnoresult.c

#include <stdio.h>
void pretty_printer() {
        fprintf(stderr, "Hello world!\n");
}

int main() {
        return 0;
}

然后,在终端:

gcc callnoresult.c -o callnoresult
gdb ./callnoresult

<gdb message>

b main
run
call (void) pretty_printer()

<"Hello world!">

有关演员的更多信息,请参阅What does casting to void really do?