1
我運行一個典型的生產國和消費過程,但它們通過在命令行中使用管道類似下面的執行:如何在這種情況下附加VC++調試器(或gdb)?
c:\>producer | consumer
producer
只是數據打印出來stdout
,並consumer
從讀stdin
。
我的問題是我想調試consumer
的過程。在VC++和gdb中最好的方法是什麼?
一種解決方案傾出到一個文件,並讀文件:
c:\>producer > temp.data
c:\>consumer < temp.data
然而,由兩個傳送的數據的量是非常大的。 temp.data
將超過1TB!我可能會使用壓縮,但壓縮/解壓縮需要很長時間。所以,我想在網上做。
目前我的解決方法是:
- 做任何工作之前,把休眠功能(例如,睡10秒)在
consumer
的主要功能如stdin
閱讀。 - 從控制檯調用
producer | consumer
。然後,consumer
以10秒睡眠開始。 - 附加
consumer
在10秒內由VC++和gdb處理。 - 好吧,睡覺後,我現在可以調試消費者。
是的,此解決方法正在工作。但是,這很煩人。我想在這種情況下有更好的調試方法。我很欣賞它的任何想法。
是生產者輸出靜態?即你可以做C:\>消費者
好點。我更新了我的問題。 – minjang
這是一個非常好的解決方法,不知道爲什麼你需要更好的解決方案? –