So was �hnliches hab ich auch...
Ich schreibe debug-nachrichten in eine application-Variable, die ich mir
dann auf einer gesonderten seite anschauen kann und gebe am ende jeder
seite die kompletten Collections aus...
Die verbindung mit 500-100.asp ist eine gute idee
Auch die arrays rekursiv abzulaufen, aber schade, dass Du nicht
mehrdimensionale arrays ausgeben kannst... da h�tte ich allerdings noch
code daf�r... das benutze ich normalerweise um variablen nach xml zu
persistieren und zwar auch beliebige arrays(beliebige dimensionen mit
unterarrays etc..)
Claudius
>
> Hallo!
>
> Ich hab mir noch ein paar Gedanken zum Debugging in ASP gemacht und
> dabei das Fehlerscript 500-100.asp (im Verzeichnis
> \WINNT\Help\iisHelp\common\) und die MSDN durchforstet.
>
> Bei einem ASP-Fehler wird immer dieses Fehlerscript aufgerufen. Vor
der
> Ausgabe wird das ASPError-Objekt mit der Fehlerbeschreibung erzeugt.
>
> Jetzt kann man das Fehlerscript 500-100.asp erweitern:
>
> 1. Collections
>
> PrintCollection "Querystring", Request.QueryString()
> PrintCollection "Form", Request.Form()
> PrintCollection "Cookies", Request.Cookies()
> PrintCollection "Session Variables", Session.Contents()
> PrintCollection "Application Variables", Application.Contents()
> PrintCollection "Server Variables", Request.ServerVariables()
> PrintCollection "Session Objects", Session.StaticObjects()
> PrintCollection "Application Objects", Application.StaticObjects()
>
> private sub PrintCollection(byval pTitle, byref pCollection)
> dim itm
> on error resume next
> Response.Write("<br><br><b>" & pTitle & "</b>")
> for each itm in pCollection
> if isobject(itm) then
> Response.Write("<br>Object Reference: " & itm)
> elseif isarray(pCollection(itm)) then
> Response.Write("<br>Array Reference: " & itm)
> PrintArray pCollection(itm)
> else
> Response.Write("<br>" & itm & " = " & pCollection(itm))
> end if
> next
> Response.Flush
> end sub
>
> private sub PrintArray(byval pArray)
> dim i, j
> for i = 0 to ubound(pArray)
> if isarray(pArray(i)) then
> Response.Write("<br>(" & i & ") = Sub-Array")
> PrintArray pArray(i)
> else
> Response.Write("<br>(" & i & ") = " & pArray(i))
> end if
> next
> end sub
>
> Jetzt werden Form-Variablen und Querystring im Klartext ausgegeben und
> zus�tzlich auch Cookies, Server-, Application- und Session-Variablen
und
> Objekte.
>
> Das Script unterst�tzt keine mehrdimensionalen Arrays (als Session-
oder
> Application-Variablen), wohl aber die von mir so geliebten Arrays von
> Arrays.
>
> Das ist zwar noch kein Debugging, aber man hat im Fehlerfall mehr
> Informationen und ist besser als kein Debugging. ;-)
>
> 2. Debug-Objekt
>
> Zus�tzlich kann man ein Debug-Objekt schreiben, das laufend Werte in
> eine Textdatei oder in eine Datenbanktabelle schreibt. Das
Klassenscript
> wird dann inkludiert. Es erzeugt automatisch eine Instanz des
> Debug-Objects.
>
> �ber "Debug.Print Label, Variable" werden Kommentare und Variablen
> ausgegeben (so wie bei VB hier aber in die Textdatei) und mit
> "Debug.Show" wird die Datei angezeigt.
>
> Dieses Debug-Objekt kann vielf�ltig eingesetzt werden. Zum einen kann
> man die Textdatei ebenfalls in der 500-100.asp ausgeben, so dass die
> Daten nur im Fehlerfall erscheinen. Man kann aber auch grunds�tzlich
am
> Ende des Scripts "Debug.Show" aufrufen.
>
> Jetzt fehlen zum vollst�ndigen Debugging noch Breakpoints,
> Einzelschrittausf�hrung und Variablen�nderungen. Aber in ASP kann ich
> darauf verzichten.
>
> Freundliche Gr��e
> Joachim van de Bruck
>
>
>
>
>
> | [aspgerman] als [EMAIL PROTECTED] subscribed
> | http://www.aspgerman.com/archiv/aspgerman/ = Listenarchiv
> | Sie k�nnen sich unter folgender URL an- und abmelden:
> | http://www.aspgerman.com/aspgerman/listen/anmelden/aspgerman.asp
| [aspgerman] als [email protected] subscribed
| http://www.aspgerman.com/archiv/aspgerman/ = Listenarchiv
| Sie k�nnen sich unter folgender URL an- und abmelden:
| http://www.aspgerman.com/aspgerman/listen/anmelden/aspgerman.asp