Vous êtes sur la page 1sur 6

Depuracin de programas

Una foto apcrifa del primer "bug" (bicho) real, el cual fue depurado ("debuged") en 1947. Depuracin de programas es el proceso de identificar y corregir errores de programacin. En ingls se le conoce como debugging, ya que se asemeja a la eliminacin de bichos (bugs), manera en que se conoce informalmente a los errores de programacin. Se dice que el trmino bug proviene de la poca de las computadoras de vlvula termoinica, en las cuales los problemas se generaban por los insectos que eran atrados por las luces y estropeaban el equipo. Si bien existen tcnicas para la revisin sistemtica del cdigo fuente y se cuenta con medios computacionales para la deteccin de errores (depuradores) y facilidades integradas en los sistemas lower CASE y en los ambientes de desarrollo integrado, sigue siendo en buena medida una actividad manual, que desafa la paciencia, la imaginacin y la intuicin del programador. Muchas veces se requiere incluir en el cdigo fuente instrucciones auxiliares que permitan el seguimiento de la ejecucin del programa, presentando los valores de variables y direcciones de memoria y ralentizando la salida de datos (modo de depuracin). Dentro de un proceso formal de aseguramiento de la calidad, puede ser asimilado al concepto de prueba unitaria.

Depurador
Saltar a navegacin, bsqueda Un depurador (en ingls, debugger), es un programa que permite depurar o limpiar los errores de otro programa informtico.

Contenido
[ocultar]

1 Uso 2 Informacin de depuracin 3 Otros usos 4 Efectos secundarios 5 Ejemplos de depuradores 6 Vase tambin

Uso [editar]
Al iniciarse la depuracin, el depurador lanza el programa a depurar. ste se ejecuta normalmente hasta que el depurador detiene su ejecucin, permitiendo al usuario examinar la situacin. El depurador permite detener el programa en:

Un punto determinado mediante un punto de ruptura. Un punto determinado bajo ciertas condiciones mediante un punto de ruptura condicional. Un momento determinado cuando se cumplan ciertas condiciones. Un momento determinado a peticin del usuario.

Durante esa interrupcin, el usuario puede:


Examinar y modificar la memoria y las variables del programa. Examinar el contenido de los registros del procesador. Examinar la pila de llamadas que han desembocado en la situacin actual. Cambiar el punto de ejecucin, de manera que el programa contine su ejecucin en un punto diferente al punto en el que fue detenido. Ejecutar instruccin a instruccin. Ejecutar partes determinadas del cdigo, como el interior de una funcin, o el resto de cdigo antes de salir de una funcin.

El depurador depende de la arquitectura y sistema en el que se ejecute, por lo que sus funcionalidades cambian de un sistema a otro. Aqu se han mostrado las ms comunes.

Informacin de depuracin [editar]


Para poder aprovechar todas las posibilidades de depuracin es necesario que, al compilar el programa a depurar, se indique al compilador que debe incluir instrucciones e informacin extra para la depuracin del cdigo. Dicha informacin extra consiste bsicamente en la correspondencia entre las instrucciones del cdigo ejecutable y las instrucciones del cdigo fuente que las originan, as como informacin sobre nombres de variables y funciones.

An si no se incluye esta informacin de depuracin, sigue siendo posible monitorizar la ejecucin del programa. Sin embargo, resultar ms difcil y compleja debido a esa falta de informacin del contexto en el que se eje ejecuta el programa.

Otros usos [editar]


Un depurador tambin puede usarse para realizar ingeniera inversa o evitar protecciones de copia. Mediante el uso del depurador se puede conocer el funcionamiento interno del . depurador programa examinado, ayudando al proceso de ingeniera inversa o permitiendo desarrollar tcnicas para evadir las restricciones impuestas por el programa.

Efectos secundarios [editar]


Es importante notar que un programa que est siendo depurado puede presentar un comportamiento diferente a si se ejecuta en solitario debido a que el depurador cambia ligeramente los tiempos internos del programa. Estos cambios en los tiempos de ejecucin afectan especialmente a sistemas complejos multihebra o sistemas distribuidos. distribuidos

Ejemplos de depuradores [editar]


GNU Debugger (gdb) SoftICE OllyDbg Trw2000 Ida Pro

Error de software
(Redirigido desde Error de programacin programacin) Saltar a navegacin, bsqueda

Foto del origen de la leyenda acerca del primer "bug" informtico conocido

Un defecto de software (computer bug en ingls), es el resultado de un fallo o deficiencia durante el proceso de creacin de programas de ordenador o computadora (software). Dicho fallo puede presentarse en cualquiera de las etapas del ciclo de vida del software aunque los ms evidentes se dan en la etapa de desarrollo y programacin. Los errores pueden suceder en cualquier etapa de la creacin de software En 1947, los creadores de Mark II informaron del primer caso de error en un ordenador causado por un bicho. El Mark II, ordenador sucesor de ASCC Mark I, construido en 1944, sufri un fallo en un rel electromagntico. Cuando se investig ese rel, se encontr una polilla que provoc que el rel quedase abierto. Grace Murray Hopper, licenciada en Fsica y destacada matemtica que trabaj como programadora en el Mark II, peg el insecto con cinta adhesiva en la bitcora (imagen) y se refiri a ella como "bicho" para describir la causa del problema. Este incidente es errneamente conocido por algunos como el origen de la utilizacin del trmino ingls "bug" (bicho) para indicar un problema en un aparato o sistema.1 2 En realidad, Thomas Alva Edison ya haba utilizado "bug" en algunas anotaciones relacionadas con interferencias y mal funcionamiento. Grace lo asoci por primera vez a la informtica, en este caso, relacionado a un insecto real. No obstante, durante los aos 50 del Siglo XX, Grace tambin emple el trmino "debug" al hablar de la depuracin de errores en los cdigos de programacin. Los programas que ayudan a deteccin y eliminacin de errores de programacin de software son denominados depuradores (debuggers)

Contenido
[ocultar]

1 Defectos de diseo de programas 2 Errores de programacin comunes 3 Defectos de instalacin o programacin 4 Cdigos de errores de lenguajes de programacin 5 Vase tambin 6 Referencias

Defectos de diseo de programas [editar]


Diseos con colores inapropiados para las personas que padecen daltonismo Diseos que usan textos con tipografas de difcil lectura por su tamao o diseo. Diseos que fuerzan el uso del ratn o mouse sin dejar alternativas de teclado para personas con disfunciones motrices.

Diseos con implicaciones culturales, por ejemplo usando partes del cuerpo que en una determinada cultura sean objeto de vergenza o burla o smbolos con caractersticas de identidad cultural o religiosa. Estimar que el equipo donde se instalar tiene determinadas caractersticas como la resolucin de la pantalla, la velocidad del procesador, la cantidad de memoria o conectividad a internet Objetos intrusivos y obstrusivos como cuadros de dilogo modales al sistema o asistentes como "Clippy" (Clipo, en espaol) que impeda el uso uniforme de Office de Microsoft.

Errores de programacin comunes [editar]


Divisin por cero Ciclo infinito Problemas aritmticos como desbordamientos (overflow) o subdesbordamientos (underflow). Exceder el tamao del array Utilizar una variable no inicializada Acceder a memoria no permitida (access violation) Prdida de memoria (memory leak) Desbordamiento o subdesbordamiento de la pila (estructura de datos) Buffer overflow Deadlock Indizado inadecuado de tablas en bases de datos.

Defectos de instalacin o programacin [editar]


Eliminacin o sustitucin de bibliotecas comunes a ms de un programa o del sistema (DLL Hell). Reiniciar arbitrariamente la sesin de un usuario para que la instalacin tenga efecto. Presuponer que el usuario tiene una conexin permanente a internet.

Cdigos de errores de lenguajes de programacin [editar]


La mayor parte de los lenguajes de programacin presentan al menos dos tipos de errores que permiten a los programadores manejar las fallas de los programas de una manera eficiente y que no resulte agresiva con el usuario final. Dichos errores son de compilacin y errores en tiempo de ejecucin. Los errores de compilacin normalmente inhiben que el cdigo fuente derive en un programa ejecutable, mientras que los errores en tiempo de ejecucin son situaciones especficas en las que un evento externo al programa impide su ejecucin. Regularmente un programador eficiente debe intentar imaginar como debe responder ante esos eventos de manera que sea el programa y no el usuario o el sistema operativo los que resuelvan el problema. As por ejemplo un bloque de error no manejado podra hacer lo siguiente:

Abre el archivo "miarchivo" para escritura comienza a escribir datos en mi archivo cierra el archivo

Si "miarchivo" no existe (o el programa o el usuario no tienen privilegios suficientes para abrirlo), el sistema operativo regresar un error que el programa no atrapar y tendremos un mensaje como "El archivo "miarchivo" no puede ser abierto para escritura" y botones para reintentar, cancelar y abortar (en el sistema operativo Windows), que no tendrn otra accin que repetirse indefinidamente sin posibilidad de salir de ese ciclo como no sea dando por terminado violentamente el programa. Un cdigo que permitiese atrapar el error en tiempo de ejecucin sera:
Abre el archivo "miarchivo" para escritura Si el sistema operativo lo permite comienza a escribir datos en "miarchivo" si no lo permiti informa al usuario de lo que sucede regresa al usuario a un punto donde no haya conflicto (el men principal, por ejemplo) Contina operando normalmente

Los diferentes lenguajes de programacin permiten diferentes construcciones lgicas a los programadores para atrapar y resolver errores en tiempo de ejecucin, como pueden ser las sentencias assert, try y on error en diferentes lenguajes de programacin.

Vase tambin [editar]


Last Error Agujero de seguridad Bugzilla Hotfix Depurador Depuracin de programas Ingeniera de Software Missingno.

Vous aimerez peut-être aussi