Serie de conferencias ASP (diecisiete) Depuración de scripts ASP
Autor:Eve Cole
Fecha de actualización:2009-05-30 19:58:42
No importa cuán sofisticada sea su planificación y experiencia, los errores de script (bugs) pueden impedir que los scripts del lado del servidor ASP se ejecuten correctamente en primer lugar. Es decir, la depuración, es decir, encontrar y corregir errores de script, es muy importante para desarrollar un programa ASP sólido y exitoso.
Herramienta de depuración de scripts de Microsoft
Microsoft® Script Debugger es una potente herramienta de depuración que le ayuda a encontrar errores rápidamente y probar interactivamente scripts del lado del servidor. Script Debugger funciona con Windows Internet Explorer versión 3.0 o posterior. Con él podrás:
Ejecute el script del lado del servidor línea por línea.
Abra una ventana de comando para monitorear el valor de una variable, propiedad o elemento de matriz mientras se ejecuta el script del lado del servidor.
Establezca un indicador de pausa en una línea específica para suspender los scripts del lado del servidor (mediante herramientas de depuración o comandos de script).
Realice un seguimiento del proceso mientras ejecuta un script del lado del servidor.
Nota Puede utilizar herramientas de depuración para ver el script y encontrar errores, pero no puede editar el script directamente. Para corregir errores, debe editar el script con un editor, guardarlo y luego ejecutarlo.
(Esta función no está disponible en Windows 95 o posterior).
Habilitación de la depuración Antes de comenzar a depurar scripts del lado del servidor, primero debe configurar su servidor web para que admita la depuración ASP.
Después de habilitar la depuración del servidor web, puede utilizar cualquiera de los siguientes métodos para depurar sus scripts:
Abra manualmente Microsoft Script Debugger y depure el script del lado del servidor ASP.
Utilice Internet Explorer para solicitar el archivo .asp. Si el archivo contiene errores o instrucciones de detención de ejecución agregadas artificialmente, Microsoft Script Debugger se inicia automáticamente, muestra el script e indica el origen del error.
Errores de secuencias de comandos Al depurar secuencias de comandos del lado del servidor, puede encontrar varios tipos de errores. Algunos de estos errores impiden que el script se ejecute correctamente, lo que hace que el programa deje de ejecutarse o devuelva resultados incorrectos.
Errores de sintaxis Los errores de sintaxis son errores frecuentes causados por una sintaxis de script incorrecta. Por ejemplo, un comando mal escrito o parámetros incorrectos pasados a una función generarán un error. Los errores de sintaxis pueden impedir que se ejecute el script.
Errores de tiempo de ejecución Los errores de tiempo de ejecución son causados por instrucciones de script que intentan realizar acciones imposibles durante la ejecución del script. Por ejemplo, el siguiente script contiene una función que divide por cero (una operación matemática ilegal), lo que generará un error de tiempo de ejecución:
<lenguaje de script = "VBScript" runat = servidor>
Resultado = Buscar respuesta(15)
document.write ("La respuesta es" &Resultado)
Función Buscar respuesta(x)
'Esta declaración genera un error de tiempo de ejecución.
Encontrar respuesta = x/0
Función final
</script>
Los errores que causan errores en tiempo de ejecución deben corregirse para que el script no se interrumpa mientras se ejecuta.
Errores lógicos Los errores lógicos a menudo pueden estar latentes y ser difíciles de detectar. Si hay errores lógicos causados por errores tipográficos o por un flujo lógico del programa incorrecto, es posible que el script se ejecute correctamente pero produzca resultados incorrectos. Por ejemplo, un script del lado del servidor que planea ordenar una lista de valores devolverá resultados de clasificación incorrectos si se usa el símbolo "<" para comparar valores en lugar del símbolo ">".
Técnicas de depuración de errores Se pueden utilizar varias técnicas de depuración diferentes para encontrar el origen de los errores y probar aplicaciones.
Depuración Just-In-Time (JIT) Cuando un error en tiempo de ejecución interrumpe la ejecución de un script ASP, Microsoft Script Debugger se inicia automáticamente, muestra el archivo .asp, apunta el puntero de instrucción a la línea que causó el error y genera un mensaje de error. Este tipo de depuración se denomina depuración justo a tiempo (JIT), donde la computadora pausa la ejecución del programa. Debe utilizar su programa de edición para corregir estos errores, guardar las correcciones y luego ejecutar el script nuevamente.
Depuración de puntos de interrupción Cuando se produce un error y es difícil encontrar el origen del error, puede utilizar el método de depuración de puntos de interrupción preestablecidos. Los puntos de interrupción pausan el script en una línea específica. Puede establecer uno o más puntos de interrupción diferentes en los puntos problemáticos del script y luego usar el depurador para corregir los valores de las variables o propiedades establecidas en el script. Después de corregir estos errores, puede borrar los puntos de interrupción para que su secuencia de comandos se ejecute sin interrupciones.
Utilice Microsoft Script Debugger para abrir el script y establecer puntos de interrupción. Luego solicite este script con su navegador web. Cuando se ejecuta una línea que contiene un punto de interrupción en el script, la computadora inicia el depurador del script y el puntero de la instrucción apunta a la línea donde se establece el punto de interrupción.
Depurador de sentencias Stop de VBScript También puede agregar puntos de interrupción a las secuencias de comandos del lado del servidor escritas en VBScript insertando una sentencia Stop antes de la parte problemática de la secuencia de comandos del lado del servidor. Por ejemplo, el siguiente script ASP contiene una instrucción Stop para pausar la ejecución antes de mostrar los resultados:
<%
valor del día = 3
El día = Nombre del día de la semana (valor del día)
Deje de establecer el punto de interrupción aquí.
Response.Write("Hoy es " + ElDía)
%>
Cuando solicita el script anterior utilizado por el navegador web, el depurador se inicia y muestra automáticamente el archivo .asp, y el puntero de la instrucción indica la ubicación de la instrucción de detención. Recuerde siempre eliminar la instrucción Stop del archivo .asp entregado.
Depuración con sentencias del depurador JScript Para agregar puntos de interrupción a secuencias de comandos del lado del servidor escritas en Microsoft® JScript, inserte una sentencia del depurador antes de la línea en cuestión. Por ejemplo, la siguiente secuencia de comandos contiene una instrucción de depuración que interrumpe la ejecución e inicia automáticamente Microsoft Script Debugger cada vez que la secuencia de comandos recorre un nuevo valor.
<%@ Idioma="JScript" %>
<%
for (var cuenta = 1; cuenta <= 10; cuenta++) {
var eventtest = recuento%2;
depurador //Establece el punto de interrupción
si (eventotest == 0) {
respuesta.write("El valor par es " + recuento + "<br>")
}
}
%>
Recuerde eliminar las declaraciones del depurador del archivo .asp entregado.
Nota: No confunda las declaraciones del depurador con las declaraciones de interrupción de JScript. Durante la ejecución del programa, la instrucción break solo sale del bucle actual y no activa Microsoft Script Debugger ni pausa la ejecución del programa.
Técnicas de depuración de scripts Además de los depuradores de scripts, un buen conjunto de técnicas de depuración también puede reducir una gran cantidad de tiempo dedicado a analizar el origen de los errores de script. Si bien la mayoría de los errores se deben a causas obvias, comandos mal escritos o variables faltantes, algunos tipos de errores de lógica y ejecución también pueden deberse a causas menos obvias.