⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 debugcomsdk.aspx

📁 书籍教程 >> .Net教程 >> asp.net编程精彩百例
💻 ASPX
字号:

<!-- #include virtual="/quickstart/aspplus/include/header.inc" -->

<h4>Microsoft .NET 框架 SDK 调试器</h4>

无论是多么熟练的程序设计员,也可能偶尔犯错误。如果没有合适的工具,跟踪代码中的问题是很麻烦的。幸运的是,ASP.NET 已经过编译,这意味着调试 Web 应用程序与调试任何其他托管应用程序没有什么不同,并且 NET 框架 SDK 包含一个完全适合此任务的轻量调试器。
<p>
本节描述使用此 SDK 中提供的调试器调试 ASP.NET 框架应用程序所需的步骤。调试器支持在本地开发计算机上手动附加调试进程。此 SDK 中包含的调试器文档是有关特定功能的最佳信息资源。

<h5>为 ASP.NET 应用程序启用调试模式</h5>

由于 ASP.NET 框架应用程序的许多部分是在运行时动态编译的(例如 .aspx 和 .asmx 文件),所以必须先配置 ASP.NET 运行库以使用符号信息编译应用程序,然后才能调试该应用程序。符号(.pdb 文件)通知调试器如何查找二进制文件的原始源文件,以及如何将代码中的断点映射到那些源文件中的行。若要配置应用程序使用符号进行编译,请在应用程序根目录下的 Web.config 文件的 <b>system.web</b> 组中,在 <b>compilatio</b> 节上包含 <b>debug</b> 属性,如下所示:

<div class="code"><pre>
&lt;configuration&gt;
  &lt;compilation debug="true"/&gt;
&lt;/configuration&gt;
</pre></div>

<b>重要事项:</b>应该仅在调试应用程序时才启用此设置,因为它会显著影响应用程序的性能。
<p>

<h5>调试 ASP.NET 应用程序</h5>

为应用程序启用了调试后,应对要调试的页发出请求。这将确保创建 ASP.NET 运行时进程 (Aspnet_wp.exe) 并将应用程序加载到内存中。
<p>
开始调试:

<ol>
<li>启动 .NET 框架调试器 DbgClr.exe。
<li>使用“文件”...“杂项文件”...“打开文件”菜单打开要调试的页的源文件。
<li>从“工具”菜单中选择“调试进程”。将出现这些说明后面的图中的屏幕。
<li>如果“显示系统进程”复选框没有被选中,则选中它。
<li>找到“Aspnet_wp.exe”进程并双击它,以显示“附加到进程”对话框。
<li>确保应用程序出现在正在运行的应用程序列表中,并选择“确定”按钮以附加。
<li>关闭“程序”对话框。
</ol>

<div class="indent">
<img src="/quickstart/aspplus/images/debug1.gif">
</div>

<p>

<b>重要事项:</b>当附加到 Aspnet_wp.exe 进程时,该进程中的所有线程都将冻结。决不要尝试调试活动的生产应用程序,因为客户端请求直到调试器被分离时才能正常执行。

<h5>设置断点</h5>

若要在页中设置断点,请单击包含可执行语句或函数/方法签名的行的左边距。在设置断点的位置出现一个红点。将鼠标移动到断点上,确保它恰当地映射到了 Aspnet_wp.exe 进程中的正确应用程序实例。

<p>
从浏览器中重新发出页请求。调试器将在断点处停止并获得当前窗口焦点。从此断点处,可以单步执行、设置变量监视、查看局部变量、堆栈信息、反汇编,等等。通过在监视窗口中使用 <i>this</i> (C#) 或 <i>Me</i> (VB),可以看到页上的内部对象,如“请求”、“响应”和“会话”。
<p>

<div class="indent">
<img src="/quickstart/aspplus/images/debug2.gif">
</div>

<h5>为预编译组件生成符号</h5>

若要调试预编译组件(如业务对象或代码隐藏文件),必须在调试前使用符号信息进行编译。通常是通过基于路径的搜索算法来查找程序集的符号。PDB 库 (Mspdb70.dll) 用来查找符号信息的算法如下所示:

<ol>
<li>搜索与程序集相同的路径。这是 .pdb 文件的正常位置。<br>对于本地程序集,将符号(.pdb文件)与 DLL 一起放在应用程序的 /bin 目录下。
<li>搜索在 PE 文件中指定的路径(NB10 调试头)。
<li>搜索 NT 符号文件位置(环境变量 <b>_NT_SYMBOL_PATH</b> 和 <b>_NT_ALT_SYMBOL_PATH</b>)。
</ol>

<b>注意:</b>如果找不到符号信息,调试器将提示使用用户指定的位置。

<h4>本节小结</h4>
<ol>
<li>本节描述的调试器支持在本地开发计算机上手动附加调试进程。
<li>调试允许 ASP.NET 运行库使用符号信息进行动态编译。启用动态编译的方法是在位于应用程序根目录下的 Web.config 文件中设置<i><nobr>&lt;compilation debug=&quot;true&quot;/&gt;</nobr></i>。应该仅在调试应用程序时才启用此调试器设置,因为它会降低应用程序的性能。
<li>若要调试应用程序,请发出页请求,将调试器附加到 Asonet_wp.exe 进程,设置断点,然后重新发出页请求。
<li>当附加到 Aspnet_wp.exe 进程时,该进程中的所有线程都将冻结。决不要调试活动的生产应用程序,因为客户端请求直到调试器被分离时才能正常执行。
<li>若要调试预编译组件(如业务对象或代码隐藏文件),必须在调试前使用符号信息进行编译。
</ol>

<!-- #include virtual="/quickstart/aspplus/include/footer.inc" -->

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -