现在的位置: 首页 > 综合 > 正文

vs2008+ie8调试和断点的解决方案

2013年12月08日 ⁄ 综合 ⁄ 共 4409字 ⁄ 字号 评论关闭
Microsoft 发布了更新的 Microsoft Visual Studio 2008 SP1 调试器组件。 杩欎簺鏇存柊主要是解决问题的发生与单步执行和命中断点。
安装
姝 ゆ 洿鏂版槸 Visual Studio 2008 SP1 x86 和 x64 的计算机上的所有版本。 但是,如果在 64 位操作系统上使用 Visual Studio 2008 标准版,您必须应用此更新之前安装 64 位 Visual Studio 2008 SP1 远程调试器。 有关如何获得 64 位 Visual Studio 2008 SP1 远程调试器,请访问以下 Microsoft 网站:
http://www.microsoft.com/downloads/details.aspx?FamilyID=440ec902-3260-4cdc-b11a-6a9070a2aaab&DisplayLang=en
multi-process 和多线程调试程序修复程序
注意 下面的说明,请参阅一假想的 Visual Studio 的单个实例由正在调试的进程。 引用的函数时将假定该函数是递归或该函数包含循环。 这些方案不打算重现该问题。 而是,他们被提供帮助解释该问题。 parallelized 的循环中的断点在多个命中次数后最终将被忽略
在循环中或在递归函数不在所有进程中命中每次迭代时将放置断点。 经常,某些进程可能通过忽略该断点停止进程前一个循环的迭代多。 请考虑以下情形:

  • 在开始调试多个进程。 正在调试的进程之一是在紧凑循环中,或者是递归函数。
  • 停止当前进程 (命中该断点在最后一个过程) 的主线程,然后继续调试。 每个进程中重复此操作。
  • 重新启动每个进程的线程。

您会注意到在几个迭代后断点被不再命中。 此行为是意外。 停止和启动线程会导致被错过的断点
断点被命中,但它们是不可见时调试 Visual Studio 调试器中的多个进程。 请考虑以下情形中调试两个进程进程 A 和进程 b。

  • 在这两个进程上设置断点和启动调试。 这两个断点将被命中。
  • 停止进程 A 的主线程、 选择进程 B,然后按 F11 进入并单步执行命令一次。
  • 重新启动进程 A 的主线程,然后停止主线程的进程 b。 然后,按 F11 可以单步执行命令。 

    您注意到这两个进程都在同一行。

  • 停止主线程的进程 a。 应在此时停止没有线程。
  • 按 F5 以继续。

完成该过程应该和 Visual Studio 应返回到设计模式。 但是,这不会发生。 该进程中断稍后在代码中。 

注意 如果您删除该断点后按 F5 继续,调试器运行直到它完成为止。 同时调试多个进程时,可能会崩溃的 visual Studio
启动和停止线程,然后运行到下一个断点,如果正在调试多个进程时,visual Studio 调试器可能会遇到死锁。 请考虑以下情形:

  • 在三个任意变量声明上设置断点。
  • 在开始调试 16 的进程。
  • 断开到该进程之一,然后停止其主线程。
  • 按 F5。
  • 您重复步骤 3 和 4,直到所有进程都命中了断点。
  • 启动的所有进程的主线程。
  • 为每个进程删除第一个断点,然后按 f5 键。
  • 为每个进程重复步骤 3 和 4。 在第二个断点处应为所有进程。
  • 按 F5。
  • 为每个进程重复步骤 3 和 4。

所有进程应都到达第三个断点,但至少一个进程可能会附着在正在运行的状态。 逐过程调试本机应用程序时已禁用断点将变成"进入"
调试本机应用程序在 Visual Studio 中包含已禁用的断点。 单步调试器过去已禁用断点时, 剩余的步骤将会丢失,和应用程序将继续运行。 单步执行时调试托管的多线程应用程序可以随机转变为"外出"
调试多线程托管应用程序和您单步执行一个线程时如命中了断点的另一个线程与发生事件时步骤请求都将丢失。 和应用程序将继续运行。 提供 MPI 插件支持的 Visual Studio 版本的消息传递接口 (MPI) 调试器修补visual Studio 崩溃时使用"逐语句"命令启动 MPI 程序
使用 单步 命令或按 F11 调试一个 MPI 进程的多个实例时 Visual Studio 将崩溃。 或者您收到以下错误信息: Microsoft Visual Studio 遇到和内部错误

调试多个进程时运行"逐过程"命令会导致死锁
如果您调试多个进程时,您可以运行 逐过程 命令,Visual Studio 将崩溃。 请考虑以下情形:

  • 打开多线程应用程序。
  • 在递归函数调用设置断点。
  • 调试两个进程。
  • 在开始调试。 在第一个过程中命中该断点。
  • 按 F5。 在第二个进程上命中该断点。
  • 停止第一个进程的主线程。
  • 在第二个进程上运行的 逐过程 命令,然后单击 暂停

    无法完成该操作,因为它正在等待第一个进程。 单击 暂停 可重新进入中断模式。 调试器使用绿色箭头指示从函数返回时,它将运行在下一语句过程。

  • 在第二个过程中添加一个断点。
  • 停止第一个进程,然后按 f5 键。

在这时您期望调试器在到达断点在每个进程中。 但是,这两个进程都在函数内部死锁和最后添加了该断点从未被命中。 此外,调试器不能运行该应用程序的末尾。 断点 UI 修复安装 Visual Studio 2008 Service Pack 1 后,已禁用的断点不可见
如果禁用了断点不再命中该断点。 此外,断点处于隐藏状态,从最左侧的编辑器通道。 已禁用的断点仍然存在。 它显示在断点工具窗口中。 
Microsoft 提供了受支持的修补程序。 但是,此修补程序用于更正本文所述鐨勯棶棰樸。 仅对出现这一特定问题的系统应用此修补程序。 此修补程序可能会接受进一步的测试。 因此,如果您不会受到严重影响姝 ら 棶棰樺,我们建议您等待包含此修补程序的下一个软件更新。 

要下载此修补程序从 MSDN 代码库,请访问下面的 Microsoft 网站: 
http://code.msdn.microsoft.com/KB957912 (http://code.msdn.microsoft.com/KB957912) 

注意 MSDN 代码库显示该修补程序是可用的语言。 如果您看不到您列出的语言,它是因为代码库的资源页不可用该语言。 

注意 如果出现其他问题,或者任何故障排除,则需要您可能要创建一个单独的服务请求。 将正常收取支持费用将应用于其他支持问题和对于该特定修补程序无法解决的问题。 有关完整列表的 Microsoft 客户服务和支持的电话号码,或创建一个单独的服务请求,璇疯闂笅闈 ㈢ 殑 Microsoft 缃戠珯锛 
http://support.microsoft.com/contactus/?ws=support

系统必备组件
您必须具有 Microsoft Visual Studio 2008 SP1 安装要应用此修补程序。 重新启动要求
没有应用此修补程序后重新启动计算机。 修补程序替换信息
姝 や 慨琛 ョ ▼ 搴忎笉鏇夸唬浠讳綍鍏朵粬淇绋嬪簭。 文件信息
姝 や 慨琛 ョ ▼ 搴忕殑鑻辨枃鐗堝叿鏈具有文件属性 (或更新的文件属性) 在下表中列出。 日期和时间杩欎簺鏂囦欢鐨勬列出协调世界时 (UTC)。 当您查看文件信息时,将转换为本地时间。 若要查找 UTC 和本地时间、 使用之差 时区 选项卡中 日期和时间 控制面板中的项。 
收起该表格
展开该表格

文件名称 鏂囦欢鐗堟湰 文件大小 日期 时间 平台
AvVsPkDH.dll 9.0.30729.177 32584 8-十一月-08 2: 19 x86
AvVsPkDH.dll 9.0.30729.177 38216 8-十一月-08 2: 19 x64
AvVsPkDH.dll 9.0.30729.177 75080 8-十一月-08 2: 19 IA-64
AvVsPkDH.dll 9.0.30729.177 75080 8-十一月-08 2: 19 x86
AvVsPkDH.dll 9.0.30729.177 38216 8-十一月-08 2: 19 x86
AvVsPkDH.dll 9.0.30729.177 32584 8-十一月-08 2: 19 x86
cpde.dll 9.0.30729.177 652608 8-十一月-08 2: 19 x86
mcee.dll 9.0.30729.177 1180992 8-十一月-08 2: 19 x86
mcee.dll 9.0.30729.177 656704 8-十一月-08 2: 19 x86
mcee.dll 9.0.30729.177 364864 8-十一月-08 2: 19 x86
mcee.dll 9.0.30729.177 364864 8-十一月-08 2: 19 x86
mcee.dll 9.0.30729.177 656704 8-十一月-08 2: 19 x64
mcee.dll 9.0.30729.177 1180992 8-十一月-08 2: 19 IA-64
mpishim.exe 9.0.30729.177 23880 8-十一月-08 2: 19 x86
mpishim.exe 9.0.30729.177 23880 8-十一月-08 2: 19 x86
mpishim.exe 9.0.30729.177 23880 8-十一月-08 2: 19 x86
mpishim.exe 9.0.30729.177 23880 8-十一月-08 2: 19 x86
mpishim.exe 9.0.30729.177 29000 8-十一月-08 2: 19 x64
mpishim.exe 9.0.30729.177 54600 8-十一月-08 2: 19 IA-64
msvb7.dll 9.0.30729.177 4087104 8-十一月-08 2: 19 x86
msvb7.dll 9.0.30729.177 5733184 8-十一月-08 2: 19 x86
msvb7.dll 9.0.30729.177 2742592 8-十一月-08 2: 19 x86
msvb7.dll 9.0.30729.177 4087104 8-十一月-08 2: 19 x86
msvb7.dll 9.0.30729.177 4087104 8-十一月-08 2: 19 x86
msvb7.dll 9.0.30729.177 2742592 8-十一月-08 2: 19 x64
msvb7.dll 9.0.30729.177 5733184 8-十一月-08 2: 19 IA-64
msvsmon.exe 9.0.30729.177 9992520 8-十一月-08 2: 19 x86
msvsmon.exe 9.0.30729.177 4761416 8-十一月-08 2: 19 x86
msvsmon.exe 9.0.30729.177 3216712 8-十一月-08 2: 19 x86
msvsmon.exe 9.0.30729.177 3216712 8-十一月-08 2: 19 x86
msvsmon.exe 9.0.30729.177 4761416 8-十一月-08 2: 19 x64
msvsmon.exe 9.0.30729.177 9992520 8-十一月-08 2: 19 IA-64
NatDbgDE.dll 9.0.30729.177 1347912 8-十一月-08 2: 19 x86
NatDbgDE.dll 9.0.30729.177 314184 8-十一月-08 2: 19 x86
vsdebug.dll 9.0.30729.177 1584968 8-十一月-08 2: 19 x86
msvb7.dll 9.0.30729.177 4087104 8-十一月-08 2: 19 x86

抱歉!评论已关闭.