2015-11-28 25 views
3

讓我們說,我有這樣一個C程序test.c功能:如何在使用lldb中的`expr`命令評估表達式時看到printf輸出?

#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) 

回答

3

STDOUT是行緩衝。你還沒有發佈換行符。嘗試調用(lldb)expr(void)fflush(0)

您應該看到輸出。或者有foo是「測試\ n」。