谁知道 ASP Debugger工具中哪个最好用(散分)?
如题,最好提供下载地址!
up也有分。
[解决办法]
用InterDev就很好.
[解决办法]
另外就是手工加debug代码.
[解决办法]
比较来比较去,还是FrontPage+手工调试方便
[解决办法]
记事本比较强悍~~
呵呵
[解决办法]
一个DEBUG的类,很长,分几段发
<%
'=======================================//
'Dim output : output= "555XXXX "
'Dim debugstr
'Set debugstr = New debuggingConsole
' debugstr.Enabled = true
' debugstr.Print "参数output的值: ", output
' ' '……
' debugstr.draw
'Set debugstr = Nothing
'=======================================//
Class debuggingConsole
private dbg_Enabled
private dbg_Show
private dbg_RequestTime
private dbg_FinishTime
private dbg_Data
private dbg_DB_Data
private dbg_AllVars
private dbg_Show_default
private DivSets(2)
'Construktor => set the default values
Private Sub Class_Initialize()
dbg_RequestTime = Now()
dbg_AllVars = false
Set dbg_Data = Server.CreateObject( "Scripting.Dictionary ")
DivSets(0) = " <TR> <TD style= 'cursor:hand; ' onclick= " "javascript:if (document.getElementById( 'data#sectname# ').style.display== 'none '){document.getElementById( 'data#sectname# ').style.display= 'block ';}else{document.getElementById( 'data#sectname# ').style.display= 'none ';} " "> <DIV id=sect#sectname# style= " "font-weight:bold;cursor:hand;background:#7EA5D7;color:white;padding-left:4;padding-right:4;padding-bottom:2; " "> |#title#| <DIV id=data#sectname# style= " "cursor:text;display:none;background:#FFFFFF;padding-left:8; " " onclick= " "window.event.cancelBubble = true; " "> |#data#| </DIV> | </DIV> | "
DivSets(1) = " <TR> <TD> <DIV id=sect#sectname# style= " "font-weight:bold;cursor:hand;background:#7EA5D7;color:white;padding-left:4;padding-right:4;padding-bottom:2; " " onclick= " "javascript:if (document.getElementById( 'data#sectname# ').style.display== 'none '){document.getElementById( 'data#sectname# ').style.display= 'block ';}else{document.getElementById( 'data#sectname# ').style.display= 'none ';} " "> |#title#| <DIV id=data#sectname# style= " "cursor:text;display:block;background:#FFFFFF;padding-left:8; " " onclick= " "window.event.cancelBubble = true; " "> |#data#| </DIV> | </DIV> | "
DivSets(2) = " <TR> <TD> <DIV id=sect#sectname# style= " "background:#7EA5D7;color:lightsteelblue;padding-left:4;padding-right:4;padding-bottom:2; " "> |#title#| <DIV id=data#sectname# style= " "display:none;background:lightsteelblue;padding-left:8 " "> |#data#| </DIV> | </DIV> | "
dbg_Show_default = "0,0,0,0,0,0,0,0,0,0,0 "
End Sub
Public Property Let Enabled(bNewValue) '[bool] Sets "enabled " to true or false
dbg_Enabled = bNewValue
End Property
Public Property Get Enabled '[bool] Gets the "enabled " value
Enabled = dbg_Enabled
End Property
Public Property Let Show(bNewValue) '[string] Sets the debugging panel. Where each digit in the string represents a debug information pane in order (11 of them). 1=open, 0=closed
dbg_Show = bNewValue
End Property
Public Property Get Show '[string] Gets the debugging panel.
Show = dbg_Show
End Property
Public Property Let AllVars(bNewValue) '[bool] Sets wheather all variables will be displayed or not. true/false
dbg_AllVars = bNewValue
End Property
Public Property Get AllVars '[bool] Gets if all variables will be displayed.
AllVars = dbg_AllVars
End Property
'******************************************************************************************************************
'@SDESCRIPTION: Adds a variable to the debug-informations.
'@PARAM: - label [string]: Description of the variable
'@PARAM: - output [variable]: The variable itself
'******************************************************************************************************************
Public Sub Print(label, output)
If dbg_Enabled Then
Dim uniqueID
if err.number > 0 then
call dbg_Data.Add(ValidLabel(label), "!!! Error: " & err.number & " " & err.Description)
err.Clear
else
uniqueID = ValidLabel(label)
response.write uniqueID
call dbg_Data.Add(uniqueID, output)
end if
End If
End Sub
'******************************************************************************************************************
'* ValidLabel
'******************************************************************************************************************
Private Function ValidLabel(byval label)
dim i, lbl
i = 0
lbl = label
do
if not dbg_Data.Exists(lbl) then exit do
i = i + 1
lbl = label & "( " & i & ") "
loop until i = i
ValidLabel = lbl
End Function
'******************************************************************************************************************
'* PrintCookiesInfo
'******************************************************************************************************************
Private Sub PrintCookiesInfo(byval DivSetNo)
dim tbl, cookie, key, tmp
For Each cookie in Request.Cookies
If Not Request.Cookies(cookie).HasKeys Then
tbl = AddRow(tbl, cookie, Request.Cookies(cookie))
Else
For Each key in Request.Cookies(cookie)
tbl = AddRow(tbl, cookie & "( " & key & ") ", Request.Cookies(cookie)(key))
Next
End If
Next
[解决办法]
tbl = MakeTable(tbl)
if Request.Cookies.count <= 0 then DivSetNo = 2
tmp = replace(replace(replace(DivSets(DivSetNo), "#sectname# ", "COOKIES "), "#title# ", "COOKIES "), "#data# ",tbl)
Response.Write replace(tmp, "| ", vbcrlf)
end sub
'******************************************************************************************************************
'* PrintSummaryInfo
'******************************************************************************************************************
Private Sub PrintSummaryInfo(byval DivSetNo)
dim tmp, tbl
tbl = AddRow(tbl, "Time of Request ",dbg_RequestTime)
tbl = AddRow(tbl, "Elapsed Time ",DateDiff( "s ", dbg_RequestTime, dbg_FinishTime) & " seconds ")
tbl = AddRow(tbl, "Request Type ",Request.ServerVariables( "REQUEST_METHOD "))
tbl = AddRow(tbl, "Status Code ",Response.Status)
tbl = AddRow(tbl, "Script Engine ",ScriptEngine & " " & ScriptEngineMajorVersion & ". " & ScriptEngineMinorVersion & ". " & ScriptEngineBuildVersion)
tbl = MakeTable(tbl)
tmp = replace(replace(replace(DivSets(DivSetNo), "#sectname# ", "SUMMARY "), "#title# ", "SUMMARY INFO "), "#data# ",tbl)
Response.Write replace(tmp, "| ", vbcrlf)
End Sub
'******************************************************************************************************************
'@SDESCRIPTION: Adds the Database-connection object to the debug-instance. To display Database-information
'@PARAM: - oSQLDB [object]: connection-object
'******************************************************************************************************************
Public Sub GrabDatabaseInfo(byval oSQLDB)
dbg_DB_Data = AddRow(dbg_DB_Data, "ADO Ver ",oSQLDB.Version)
dbg_DB_Data = AddRow(dbg_DB_Data, "OLEDB Ver ",oSQLDB.Properties( "OLE DB Version "))
dbg_DB_Data = AddRow(dbg_DB_Data, "DBMS ",oSQLDB.Properties( "DBMS Name ") & " Ver: " & oSQLDB.Properties( "DBMS Version "))
dbg_DB_Data = AddRow(dbg_DB_Data, "Provider ",oSQLDB.Properties( "Provider Name ") & " Ver: " & oSQLDB.Properties( "Provider Version "))
End Sub
'******************************************************************************************************************
'* PrintDatabaseInfo
'******************************************************************************************************************
Private Sub PrintDatabaseInfo(byval DivSetNo)
dim tbl
tbl = MakeTable(dbg_DB_Data)
tbl = replace(replace(replace(DivSets(DivSetNo), "#sectname# ", "DATABASE "), "#title# ", "DATABASE INFO "), "#data# ",tbl)
Response.Write replace(tbl, "| ", vbcrlf)
End Sub
'******************************************************************************************************************
'* PrintCollection
'******************************************************************************************************************
Private Sub PrintCollection(Byval Name, ByVal Collection, ByVal DivSetNo, ByVal ExtraInfo)
Dim vItem, tbl, Temp
For Each vItem In Collection
if isobject(Collection(vItem)) and Name <> "SERVER VARIABLES " and Name <> "QUERYSTRING " and Name <> "FORM " then
tbl = AddRow(tbl, vItem, "{object} ")
elseif isnull(Collection(vItem)) then
tbl = AddRow(tbl, vItem, "{null} ")
elseif isarray(Collection(vItem)) then
tbl = AddRow(tbl, vItem, "{array} ")
else
if dbg_AllVars then
tbl = AddRow(tbl, " <nobr> " & vItem & " </nobr> ", server.HTMLEncode(Collection(vItem)))
elseif (Name = "SERVER VARIABLES " and vItem <> "ALL_HTTP " and vItem <> "ALL_RAW ") or Name <> "SERVER VARIABLES " then
if Collection(vItem) <> " " then
tbl = AddRow(tbl, vItem, server.HTMLEncode(Collection(vItem))) ' & " { " & TypeName(Collection(vItem)) & "} ")
else
tbl = AddRow(tbl, vItem, "... ")
end if
end if
end if
Next
if ExtraInfo <> " " then tbl = tbl & " <TR> <TD COLSPAN=2> <HR> </TR> " & ExtraInfo
tbl = MakeTable(tbl)
if Collection.count <= 0 then DivSetNo =2
tbl = replace(replace(DivSets(DivSetNo), "#title# ",Name), "#data# ",tbl)
tbl = replace(tbl, "#sectname# ",replace(Name, " ", " "))
Response.Write replace(tbl, "| ", vbcrlf)
End Sub
'******************************************************************************************************************
'* AddRow
'******************************************************************************************************************
Private Function AddRow(byval t, byval var, byval val)
t = t & "| <TR valign=top> | <TD> | " & var & "| <TD> = " & val & "| </TR> "
AddRow = t
End Function
'******************************************************************************************************************
'* MakeTable
'******************************************************************************************************************
Private Function MakeTable(byval tdata)
tdata = "| <table border=0 style= " "font-size:10pt;font-weight:normal; " "> " + tdata + " </Table> | "
MakeTable = tdata
End Function
'******************************************************************************************************************
'@SDESCRIPTION: Draws the Debug-panel
'******************************************************************************************************************
Public Sub draw()
If dbg_Enabled Then
dbg_FinishTime = Now()
Dim DivSet, x
DivSet = split(dbg_Show_default, ", ")
dbg_Show = split(dbg_Show, ", ")
For x = 0 to ubound(dbg_Show)
divSet(x) = dbg_Show(x)
Next
Response.Write " <BR> <Table width=100% cellspacing=0 border=0 style= " "font-family:arial;font-size:9pt;font-weight:normal; " "> <TR> <TD> <DIV style= " "background:#005A9E;color:white;padding:4;font-size:12pt;font-weight:bold; " "> Debugging-console: </DIV> "
Call PrintSummaryInfo(divSet(0))
Call PrintCollection( "VARIABLES ", dbg_Data,divSet(1), " ")
Call PrintCollection( "QUERYSTRING ", Request.QueryString(), divSet(2), " ")
Call PrintCollection( "FORM ", Request.Form(),divSet(3), " ")
Call PrintCookiesInfo(divSet(4))
Call PrintCollection( "SESSION ", Session.Contents(),divSet(5),AddRow(AddRow(AddRow( " ", "Locale ID ",Session.LCID & " (&H " & Hex(Session.LCID) & ") "), "Code Page ",Session.CodePage), "Session ID ",Session.SessionID))
Call PrintCollection( "APPLICATION ", Application.Contents(),divSet(6), " ")
Call PrintCollection( "SERVER VARIABLES ", Request.ServerVariables(),divSet(7),AddRow( " ", "Timeout ",Server.ScriptTimeout))
Call PrintDatabaseInfo(divSet(8))
Call PrintCollection( "SESSION STATIC OBJECTS ", Session.StaticObjects(),divSet(9), " ")
Call PrintCollection( "APPLICATION STATIC OBJECTS ", Application.StaticObjects(),divSet(10), " ")
Response.Write " </Table> "
End If
End Sub
'Destructor
Private Sub Class_Terminate()
Set dbg_Data = Nothing
End Sub
End Class
%>
[解决办法]
老工具InterDev
[解决办法]
还是觉得手工调试较方便,DW8现在也可以把代码折叠,看起来就方便多了
[解决办法]
up
------解决方案--------------------
asp studio
很強,還有獨立的服務器不用倚賴IIS
搜一下就可以了