zoukankan      html  css  js  c++  java
  • VS2008小技巧之附加进程 宏

    我是一个B/S程序开发者,所以经常调试ASP.NET程序,而我们的项目使用的是本地IIS Web服务器,为了方便调试,我一般不会去按F5调试,而是附加进程的方式调试,因为这样的好处是:

    1. 不用每次都等待IE漫长的开启时间,之前打开一次即可。
    2. 省去每次都登录
    3. ajax调用后台代码的时候,如果后台出错,停止调试后IE不会关闭,下次无需其他初始操作。

    但是附加进程的方式,每次调试都需要几步操作才能完成,所以想起用宏来录制一个脚本,方便操作。

    具体步骤:(以VS2008和Win7为例,其他系统因IE版本差异而不同)

    1、点击菜单Tools->Macros->Record TemporaryMacro

    2、录制附加进程的一连串操作

    3、操作完成后点Stop,然后就可以在Macros IDE里看到刚才录制的宏了。

    下面是我录制的附加w3wp.exe调试后台代码的宏:

    Sub DebugBLLMacro()
    
            Try
    
                Dim dbg2 As EnvDTE80.Debugger2 = DTE.Debugger
    
                Dim trans As EnvDTE80.Transport = dbg2.Transports.Item("Default")
    
                Dim dbgeng(3) As EnvDTE80.Engine
    
                dbgeng(0) = trans.Engines.Item("T-SQL")
    
                dbgeng(1) = trans.Engines.Item("T-SQL")
    
                dbgeng(2) = trans.Engines.Item("Managed")
    
                Dim proc2 As EnvDTE80.Process2 = dbg2.GetProcesses(trans, "TP0659").Item("w3wp.exe")
    
                proc2.Attach2(dbgeng)
    
            Catch ex As System.Exception
    
                MsgBox(ex.Message)
    
            End Try
    
        End Sub
     
    注:上面的TP0659因个人机器名不同而不同
     
    4、在工具栏上点击右键,选择Customize,选择commands标签页,找到刚才录制的宏,将其拖到工具栏上即可
    5、如果美化一下,可以设置图标,然后设置只显示图标。
    以后再调试后台代码的时候直接点这个图标就可以了
     
    在录制宏调试前台JS脚本的时候发现VS2008自动录制的脚本并不能调试
    因为进程中有几个IE,只有附加到type为script的才能调试(这个地方好像IE8才这样)
    所以在录制的脚本上进行了简单的修改,使所以IE进程都附加。
    具体脚本:
    Sub DebugWebUI()
    
            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 procs As EnvDTE.Processes = dbg2.GetProcesses(trans, "TP0659")
                Dim proc2 As EnvDTE80.Process2
    
                For Each proc2 In procs
    
                    If (Right(proc2.Name, 12) = "iexplore.exe") Then
    
                        proc2.Attach2(dbgeng)
    
                    End If
    
                Next
            Catch ex As System.Exception
                MsgBox(ex.Message)
            End Try
        End Sub

    写在最后,以上脚本只是使用VS录制后简单修改,没有完善的异常处理等。

    还有就是如果你开了其他IE窗口,即使不是开发的程序的IE窗口也将被附加,这个不知道有啥办法能指定。因为每次打开IE后的进程号不一样。

  • 相关阅读:
    运行.bat批处理,CMD窗口隐藏,并制作为EXE文件
    TinyXML:一个优秀的C++ XML解析器(转载)
    2013编程之美资格赛【传话游戏】
    linux GTK教程(消息机制/标签/按钮/图像/文本/对话框/菜单/容器)
    c++强制类型转换(总结)
    string与char*的转换(转载)
    网络数据包捕获函数库Libpcap安装与使用(非常强大)
    Linux 高级Socket编程
    linux GTK 安装
    .dll和.lib文件的生成和使用 c++
  • 原文地址:https://www.cnblogs.com/sss/p/1702408.html
Copyright © 2011-2022 走看看