能对子进程的输入输出重定向且对子进程进行调试吗? 我在程序中用createporcess 生成了一个子进程(dos程序,exe文件),并对其输入输出进行了重定向(运行正常);又想得到子进程的异常(被0除等),就选择了对子进程进行调试得方法(不知道别的方法),运行正常。 但将2者一块用,就不成了,请问在对子进程进行调试时,不能进行输入输出重定向吗?要想实现这些功能,该怎么办呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是用createpipe生成管道,将createprocess生成的子进程的输入输出重定向,createprocess得生成标志dwCreationFlags设为null;如果将dwCreationFlags设置成debug_process,就是对进程调试了,用WaitForDebugEvent等待调试异常的发生,此时对子进程的输入输出重定向就不行了,程序就死在那里了。 试试下面的方法:在你想要调试的子程序的代码中加入一句代码DebugBreak();然后重新编译你的子程序的调试版本。现在调试主程序,子程序的调试版本在运行的过程中,当执行到DebugBreak()时,将会抛出一个异常,这个异常会由操作系统捕捉到,然后弹出一个对话框,说程序遇到了问题,问你要不要发送错误报告,点击该对话框的调试按钮,系统又会弹出一个对话框,选择相应的调试器进行调试,然后子进程就会中断在代码DebugBreak()处,接下来就可以正常调试了 您说的方法可能不行,我倒是可以在子程序中加入代码DebugBreak(),但要求是程序自动调试子进程,且输入也是从数据库或文件中读取,也就是不需要人的干预,一切自动化。 我调试的时候重定向了stderr,通过它向主进程传送错误消息 linur 能说的具体一些吗? 有没有不进行调试而得到子进程异常的方法? 比如A创建了进程B,但希望在非调试运行的时候B有可能出现像被0除这样的错误,A要知道B的异常?我的想法是A要知道这样的错误那就要求B必须要报告这个错误,而B报告错误的方法那就多了,用进程间消息通信都可以,你的意思是不是在说B在异常退出并不报告这个错误,而A也能感知到B退出了? 我的意思是说B在发生时异常时将错误报告给A,且B退出. 用消息来报告,比如B异常时就发消息给A,A就应该知道B异常了,这个方法不行么? 问一个比较偏门的问题:根据PCI插槽识别显卡和显示器 学习VC过程中的困惑,请大家伙给点意见! 子类里如何定义OnEnChangeEdit事件 在VC++中怎么查询数据库用户? 请问AfxBeginThread();里面的参数怎么设置 怎么样在同一个位置变换不同的工具条? CoCreateInstance() 在exe中成功调用,但在ActiveX控件中调用总是出错 怎样实时获得文件大小 请教高手问题,(150拿去)在对话框内创建了一个CTabCtrl,如何在CTabCtrl上创建一个ListBox。 谁有Ftp客户端VC源码?发一份 OCX控件不能正常下载注册 VC中调用atl组建的问题。
在你想要调试的子程序的代码中加入一句代码DebugBreak();
然后重新编译你的子程序的调试版本。现在调试主程序,
子程序的调试版本在运行的过程中,当执行到DebugBreak()时,将会抛出一个异常,
这个异常会由操作系统捕捉到,然后弹出一个对话框,说程序遇到了问题,问你要不要发送错误报告,点击该对话框的调试按钮,系统又会弹出一个对话框,选择相应的调试器进行调试,然后子进程就会中断在代码DebugBreak()处,接下来就可以正常调试了
有没有不进行调试而得到子进程异常的方法?