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
这是一个非常好的解决方法,不知道为什么你需要更好的解决方案? –