2

我已经收到了一份支持申请,我正试图弄清楚如何去做。我确实有源代码,并且可以进行一些更改,但我显然不想完全更改应用程序的架构。

该应用程序位于由 9 个不同项目组成的 VS2010 解决方案中。主要的是一个 Windows 窗体应用程序,但它在其他线程中衍生出其他应用程序。

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

如何设置断点和调试从属可执行文件?在加载它们之前我无法附加到它们,但是在调用 process.Start() 之前它们不会被加载,到那时为时已晚。是否有一个方法调用我可以插入到主程序中以使其在实际开始执行之前加载可执行文件(以便我可以在其中设置断点)?

谢谢。

4

2 回答 2

0

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

您无法加载该进程(很有用),因为根据定义,它将在与您在启动之前调试的地址空间不同的地址空间中运行。

于 2011-03-29T15:03:12.083 回答
0

一个简单的解决方案可能是将DebugActiveProcess函数的调用添加到参与应用程序的每个进程的“主”函数中。

于 2011-03-29T15:44:35.640 回答