簡體   English   中英

管道命令時,gdb不會停止

[英]gdb does not stop when piping the command

當以常規方式運行時, 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)上存在相同的問題。

在輸入和輸出重定向工作時,不能使用管道將要調試的程序的輸出傳遞給另一個程序。 如果您嘗試這樣做,GDB可能會結束調試錯誤的程序。

https://www.sourceware.org/gdb/onlinedocs/gdb.html

根據另一個答案

(gdb) run > >(cat)

參見過程替代

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM