我们假设我在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)
答案 0 :(得分:3)
STDOUT是行缓冲的。你尚未发布换行符。尝试调用(lldb)expr(void)fflush(0)
你应该看到输出。或者让foo成为“测试\ n”。