我有两个VS解决方案。解决方案A_sol
是C++/C#项目。解决方案B_sol
有项目B_proj
是在A_sol
通过B_proj
项目生成的C#包装围绕C++ *.dll
。 如何从B_proj
调试A_proj
?
更新:B_sol
中的项目之一是可执行文件。从C#解决方案调试C++解决方案
回答
如何调试A_proj从B_proj?
如果我正确理解你,A_proj是一个C++项目。下面我会根据这个假设给出我的建议。
请注意,只要您有调试信息(换句话说,对于C++项目 - 如果Visual Studio能够拾取PDB的话),从哪个项目/解决方案开始调试并不重要。
所以,你既可以从溶液中运行可执行文件,或者通过@hoodaticus in his answer的建议,附加到已经运行的进程。无论你的项目是不是可执行,你就能只要重视它为:
- DLL被加载到进程
- 您有该DLL匹配的PDB文件(编译过程中产生的)
因此我只是重复同样的建议
在其他项目中,做调试>附加到进程>从列表中选择你的进程 。
但是我会补充一点,您必须注意选择“调试这些代码类型 - > Native”,以查看包含您的C++ dll的进程。这部分往往是错过和迷惑的人,需要一些时间来发现(亲自,我经常进入它)
希望有所帮助。
- 在调试器外运行您想要调试的进程。
- 在另一个项目中,执行调试>附加到进程>从列表中选择您的进程。
问题是'A_sol'(一个生成C++ .dll)不是一个可执行的解决方案。它纯粹是一个图书馆解决方案。 – newprint
@newprint - 如果你的库没有用在任何可执行文件中,那么就没有必要对它进行调试,所以这是一个自我解决的问题。如果它在可执行文件中使用,那么您可以使用Attach to Process来运行该可执行文件并从库解决方案中进行调试,就像我所说的那样。 – hoodaticus
- 1. 调试解决方案DataImportHandler
- 2. 死锁c#解决方案
- 3. C#MVC解决方案?
- 4. 从一种解决方案调试到另一种解决方案
- 5. VS 2010解决方案取决于另一个解决方案
- 6. 调试现有的Sharepoint解决方案
- 7. 调试多种解决方案VS 2012
- 8. C# - 将多项目解决方案转换为1-1项目解决方案
- 9. codechef解决方案
- 10. MSBuild解决方案
- 11. Qt:QStackedWidget解决方案
- 12. squarepie解决方案
- 13. Python解决方案
- 14. google.appengine.runtime.DeadlineExceededError解决方案?
- 15. C#解决方案上传文件
- 16. 打印解决方案(新的C)
- 17. Rosyln更快加载C#解决方案
- 18. C++字符串连接解决方案
- 19. c#解决方案的构建优化
- 20. Maven2中的Visual Studio C++解决方案
- 21. 循环旋转codility C++解决方案
- 22. C#免费Doc 2 PDF解决方案
- 23. C++:模板的替代解决方案
- 24. c#解决方案中的多个app.config
- 25. C#POP3协议解决方案
- 26. 逆向工程C#解决方案
- 27. 如何构建C#解决方案
- 28. 试图了解这个解决方案
- 29. 寻找.Net解决方案的免费授权解决方案
- 30. 递归解决方案的动态编程解决方案
一旦代码已经运行,它是不是真的很重要,如果它是EXE或库代码 - 它们都是一样的;) – hoodaticus