如果不是启动项目,如何在 C++ 应用程序中打断点
How to hit break point in c++ app if it is not start-up project
我有一个包含两个项目的 VS2010 解决方案:C# windows 表单和 C++ 控制台应用程序。 C# 项目是启动项目,它会调用 C++ 应用程序,我也正确设置了构建优先级和依赖性,但在调试模式下,C++ 项目中的断点不会被击中,这是我的 C# 代码:
static void Main()
{
string CppPath = System.IO.Path.GetFullPath(System.IO.Path.Combine(Environment.CurrentDirectory.ToString(), @"..\..\..") + @"\Debug\");
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(CppPath + "CommunicationServerCpp.exe");
startInfo.WorkingDirectory = CppPath;
System.Diagnostics.Process.Start(startInfo);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
我不想把它们分成两个解决方案,那我该如何解决呢?
在调试菜单中有"attach to process"。
在控制台项目中,您需要创建一个 pause/delay 函数,等待您附加 VS 调试器。
无法在 VS 的 1 个实例中调试 2 个项目 - 因此必须启动第二个实例。
我有一个包含两个项目的 VS2010 解决方案:C# windows 表单和 C++ 控制台应用程序。 C# 项目是启动项目,它会调用 C++ 应用程序,我也正确设置了构建优先级和依赖性,但在调试模式下,C++ 项目中的断点不会被击中,这是我的 C# 代码:
static void Main()
{
string CppPath = System.IO.Path.GetFullPath(System.IO.Path.Combine(Environment.CurrentDirectory.ToString(), @"..\..\..") + @"\Debug\");
System.Diagnostics.ProcessStartInfo startInfo = new System.Diagnostics.ProcessStartInfo(CppPath + "CommunicationServerCpp.exe");
startInfo.WorkingDirectory = CppPath;
System.Diagnostics.Process.Start(startInfo);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
我不想把它们分成两个解决方案,那我该如何解决呢?
在调试菜单中有"attach to process"。
在控制台项目中,您需要创建一个 pause/delay 函数,等待您附加 VS 调试器。
无法在 VS 的 1 个实例中调试 2 个项目 - 因此必须启动第二个实例。