以正常方式运行时,gdb
会按预期停止:
(gdb) break main
(gdb) run
Starting program ...
Breakpoint 1, main ...
在管道运行时,gdb
永不停止:
(gdb) run | cat
Starting program: /home/sds/z | cat
...
During startup program exited normally.
(gdb)
如何在管道时调试程序行为?
我的设置:
$ gdb --version
GNU gdb (GDB) Amazon Linux (7.6.1-64.33.amzn1)
$ uname -a
Linux datasci-1 4.4.19-29.55.amzn1.x86_64 #1 SMP Mon Aug 29 23:29:40 UTC 2016 x86_64 x86_64 x86_64 GNU/Linux
$ gcc --version
gcc (GCC) 4.8.3 20140911 (Red Hat 4.8.3-9)
最新完全更新的ubuntu(16.10)上的问题。
答案 0 :(得分:0)
虽然输入和输出重定向工作,但您不能使用管道将正在调试的程序的输出传递给另一个程序;如果你试图这样做,GDB很可能会调试错误的程序。
答案 1 :(得分:0)