在开发过程中,我们通常需要附加到进程进行调试。情形主要如下:
1)第三方程序调用
在第三方调用我们写的东西的时候,我们往往附加到第三方进程进行调试。
2)web调试
在服务器上,我们往往附加到w3p进行进行调试。
1.WinForm
using System;
using System.Windows.Forms;
namespace AttachProcessDebugDemo
{
public partial class FrmMain : Form
{
public FrmMain()
{
InitializeComponent();
}
private void btnDemo_Click(object sender, EventArgs e)
{
MessageBox.Show("I am clicked.");
}
}
}
我们运行编译后的exe
运行效果如下:
在VS中附加到进程进行调试
点击按钮
结果:
2.Web
using System.Web.UI.WebControls;
namespace AttachProcessDebugDemo.Web
{
public partial class Index : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void btnDemo_Click(object sender, EventArgs e)
{
Response.Write("<script type='text/javascript'>alert('I am clicked!')</script>");
}
}
}
我们附加到iisexpress进行调试
点击后的结果
总结:
附加到进程调试有时候非常有用,毕竟代码环境不能够完全模拟真实环境,这样我们就能够很好地发现问题!