2013-10-30 44 views
1

VS2005 C++调用exe文件如何调试由另一在VS2005

我有一个包含2 .exe和几个dll A.exe时调用B.EXE比B.EXE调用其他DLL

我一个SLN想插入断点在B.EXE的代码和DLL
但如果我设置A.exe时启动项目,断点B和DLL是无效

如果我设置B.EXE启动项目,不仅仅是B. EXE运行,但A.exe是必要的我 因为很多事情必须由A

如果设置A和B的启动项目,这是avalible调试B,但你知道 当A乳宁,它会调用另一个B,所以2 B.EXE在的Sametime来看,这不是我想要什么

所以,任何一个可以帮助我,我真的很无聊这个很长一段时间,

任何建议是appritate感谢

+0

Visual Studio 2005支持连接到多个正在运行的进程。调试/附加到进程...只需调试A,让它启动B并附加到它。 – WhozCraig

+0

感谢兄弟,我做了一个示例解决方案,包括一个shell.exe,一个dllcall.exe和一个dlltest.dll,它适用于您的方法,但在我的信号解决方案这是一个巨大的解决方案,由QT制作,它dosen't工作,我不知道为什么,因为QT? – thed

+0

无法回答那个问题。我从不使用它。它*应该*工作,所以看起来很奇怪。 – WhozCraig

回答

0

可以调试的,只要你想许多烧烤 - 刚刚推出足够的Visual Studio 2005实例,在MSVC 2005的每个实例中打开项目,选择Debug - >“Attach to Proces”并选择B processes所需的实例秒。

+0

谢谢兄弟,同样的“附加到过程”的方法,但仍然不能在我上面所说的我的信号解决方案中工作。 – thed

+0

我觉得很有趣,怎么可以知道一个进程的sourecode在哪里,大多数进程只是一个先行或一个应用程序,只是为了使用,而不是为了编码 – thed

0

您可以使用Image File Execution Options

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Image File Execution Options\B.exe] 
"Debugger"="vsjitdebugger.exe" 

而且你可能需要运行这个命令之前得到它在Visual Studio命令提示符工作。

vsjitdebugger.exe /regserver 

然后当B.exe被执行时,应该有一个弹出窗口要求您调试它。

在您的源代码中,您还可以插入DebugBreak()来打破调试器。

+0

我很抱歉,我仍然无法理解你说什么,我需要更多的时间来理解和尝试它,但仍然非常感谢你 – thed

+0

我学到了你的文章,看起来像MS官方解决方案,非常好,虽然我没有真正尝试过,因为我无权改变我的注册表,你知道,IT状态 – thed