【问题标题】:Attach VS2010 to IE9 with PowerShell to debug javascript使用 PowerShell 将 VS2010 附加到 IE9 以调试 javascript
【发布时间】:2012-07-27 09:23:25
【问题描述】:

问题(来自 nuget PowerShell):

  • 启动 IIS Express(网站在文件夹中)[完成]
  • 启动 IE9 到 URL [完成]
  • 将当前 VisualStudio 实例附加到 IIS 以调试 .net 代码 [完成]
  • 将当前 VisualStudio 实例附加到 IE9 以调试 Javascript 代码 [问题]

状态:

目前我可以从 powershell(使用 $DTE 对象)将 VS 附加到 IIS 和 IE9 选项卡进程。但是我无法调试 javascript 代码(我认为 VS 默认只调试 .net 代码而不是脚本)。

我看到了 EnvDTE80.Transport,但我不知道如何在 nuget PowerShell 中使用它。 你有调试js的想法吗?还是采用完全不同的方法解决问题?

更新(8 月 8 日): 我可以附加到 IE9 调试 js 但我发现我的问题完全不同:

  • 我使用 powershell 运行 IIS Express
  • 我用 powershell 运行 IE9
  • 我可以获得“Process”es 对象

但是我过早地将调试器附加到进程,并且调试不起作用。

  • 我尝试(即)启动 IIS Express,启动 IE9,先连接到 IIS,然后再连接到 IE9。现在我可以调试脚本,但不能调试 IIS Express。
  • 我尝试在将 DTE 附加到进程之前停止脚本 5 秒 (Start-Sleep -s 5),现在我可以调试 IE js 和 IIS。但我不喜欢睡眠解决方案(多少秒?)。

【问题讨论】:

    标签: javascript visual-studio-2010 powershell visual-studio-debugging


    【解决方案1】:

    我没有通过 VS 对象模型而是通过 GUI 完成此操作,当您附加到 IE9 等正在运行的进程时,您可以选择所需的调试器类型。在这种情况下,您需要“脚本”调试器。如果这可以通过 GUI 完成,那么我怀疑它可以通过对象模型完成。 VS 中的宏记录器非常适合解决此类问题。我在执行通过 GUI 附加的步骤时打开了它并得到了这个:

    Sub TemporaryMacro()
        Try
            Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
            Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
            Dim dbgeng(1) As EnvDTE80.Engine
            dbgeng(0) = trans.Engines.Item("Script")
            Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "HILLR1").Item("iexplore.exe")
            proc2.Attach2(dbgeng)
        Catch ex As System.Exception
            MsgBox(ex.Message)
        End Try
    
    End Sub
    

    【讨论】:

      【解决方案2】:

      我使用 firebug 在 Firefox 中调试 Javascript。 Chrome 有它的等价物。 没试过在 IE 下,不过我觉得 IE 有 Firebug 版本。

      检查这个问题:Firebug equivalent for Internet Explorer

      【讨论】:

        猜你喜欢
        • 2013-03-03
        • 1970-01-01
        • 2013-11-20
        • 1970-01-01
        • 2011-12-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多