繁体   English   中英

使用PowerShell将VS2010附加到IE9以调试JavaScript

[英]Attach VS2010 to IE9 with PowerShell to debug javascript

问题(来自nuget PowerShell):

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

状态:

目前,我可以从Powershell(带有$ DTE对象)将VS附加到IIS和IE9选项卡进程。 但是我无法调试javascript代码(我认为VS默认情况下仅调试.net代码而不调试Script)。

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

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

  • 我使用Powershell运行IIS Express
  • 我使用Powershell运行IE9
  • 我可以得到“过程”对象

但是我太早将调试器附加到进程上了,调试不起作用。

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

我尚未通过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

我使用Firebug在Firefox中调试Javascript。 Chrome具有与其等效的功能。 从未尝试在IE中使用,但我认为IE有Firebug版本。

请检查以下问题: 相当于Internet Explorer的Firebug

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM