2011-03-29 70 views
2

我已经递交了一个应用程序来支持,并且我试图找出如何去做。我确实有源代码,可以进行一些更改,但我显然不想完全更改应用程序的体系结构。调试一个动态加载的可执行文件

应用程序是在9名不同的项目构成的VS2010溶液。主要的是一个Windows窗体应用程序,但它在其他线程中分离出来。

这里的困难。尽管不同的项目是同一解决方案的一部分,但它们是单独的可执行文件,而不是DLL。当主程序启动其中一个项目时,它通过创建一个新进程,将可执行文件名,启动参数和其他各种参数设置到process.StartInfo对象中,然后调用process.Start()来完成。

如何设置断点并调试下属的可执行文件?直到它们被加载后我才能附加到它们,但是直到process.Start()被调用之前,它们不会被加载,因此太迟了。有没有方法调用,我可以插入到主程序,让它加载可执行文件(所以我可以在它设置断点)之前,它实际上开始执行?

谢谢。

回答

0

您能够重新编译其他可执行文件?如果是这样,你有没有尝试把DebugBreak放在合适的地方? (或_asm int 3)。

不能加载过程(有效),因为根据定义,它会从它开始之前你在调试一个不同的ADDRES空间中运行。

+0

谢谢,皮特。顺便说一句,C#语法(或者至少对我有用)是System.Diagnostics.Debugger.Break(); – 2011-03-30 13:14:30

0

一个简单的解决方案,可以将调用DebugActiveProcess功能,每一个参与其中的应用程序过程的“主要”功能。

相关问题