Gdbserver,远程调试,printf()输出在主机上看不到

时间:2014-06-19 13:46:35

标签: c linux gdb gdbserver

我使用以下命令行在远程armv5目标上运行gdbserver:

./gdbserver --debug --remote-debug --multi :9000

主机是x86 Linux。我正在尝试远程调试示例hello_world.c程序,几乎是一个int main(int argc,char ** argv){printf(" hello world \ n");出口(0); };

我在主机上执行以下操作:

./gdb
(gdb)set sysroot /home/username
(gdb)set verbose on
(gdb)target extended-remote 192.168.1.217:9000
(gdb)file hello_world
(gdb)set remote exec-file /upgrade/hello_world
(gdb)r

输出如下:

    Starting program: /home/username/hello_world

Loaded symbols for /lib/ld-linux.3.so
Loaded symbols for /lib/libc.6.so
Breakpoint 1, main (argc=1, argv=0xbe90cdd4) at hello_world.c:50
50         int parm=7;

    (gdb) c

        Continuing.
        [Inferior 1 (process 16721) exited normally]

请注意,主机上没有printf()输出。它只是在断点处停止,然后在我点击“c”时运行完成。

我希望printf中的\ n能够立即刷新缓冲区并产生输出,但由于某种原因,我在主机gdb窗口中看不到它。

有什么想法吗?

0 个答案:

没有答案