簡體   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