我有两个项目。其中一个是工作者应用程序,它做了一些事情。另一个是工作者的GUI(GUI运行作为工作者实例的异步进程)。因此,worker项目输出是GUI使用的.exe
文件。
如何调试工作人员?这样做有可能吗?令人讨厌的是我可以为worker创建一个命令行界面并生成某种引用参数,以便它单独运行它,但问题是当我想为多个实例执行此操作时(我有一个生成的程序)一些数据异步所以我必须在我的代码中找到一个错误,它在一个进程中工作正常,但在多个错误中运行。)
答案 0 :(得分:1)
你没有提供关于gui和worker之间交互的太多信息,但如果附加到进程太难(通常是工作者只是短暂运行),更可用的方案是添加配置选项到gui为worker命令行添加一个额外的参数,worker指向DebugBreak。例如,工人的主要是
var args = ParseArguments(); //check if string 'WaitForDeugger' is on command line
if( args.RequestsDebug )
System.Diagnostics.Debugger.Break();
....
gui像这样调用工人:
var args = GetArgumentsForWorker();
if( someSpecialDebugOptionEnabled )
args += " WaitForDeugger";
Process.Start( "worker.exe", args );