在使用lldb中的`expr`命令计算表达式时,如何查看printf输出?

时间:2015-11-28 09:49:07

标签: debugging llvm lldb

我们假设我在C程序test.c中有这样的功能:

#include <stdio.h>
char* foo = "test";
void print_foo(void)
{
    printf("%s", foo);
}
main() {  }

我像这样编译并运行test.c

gcc -g -o test test.c
chmod 755 test && lldb -s <(echo "b main\nr") test

但是,如果我然后运行expr print_foo()则不会发生字符串输出:

(lldb) expr print_foo()
(lldb)

1 个答案:

答案 0 :(得分:3)

STDOUT是行缓冲的。你尚未发布换行符。尝试调用(lldb)expr(void)fflush(0)

你应该看到输出。或者让foo成为“测试\ n”。