¿Cómo se solucionan los errores informáticos?

Un programador tiene que rastrear el error en el software que causa el error. Luego corrija ese error y vuelva a lanzar la versión corregida.

Encontrar ese error es el problema aquí.

A veces es muy obvio dónde está el problema al examinar los síntomas. Tal vez un cálculo específico de un número particular es incorrecto. Por ejemplo, si divide accidentalmente entre cero (el programa se bloqueará) y al saber lo que estaba haciendo en ese momento, puede encontrar y corregir el error fácilmente.

A veces, el problema está muy alejado de los síntomas. Por ejemplo, si un fragmento de memoria que está en uso activo está marcado incorrectamente como “no utilizado”, entonces nada sale mal inmediatamente. Algún tiempo después (tal vez microsegundos más tarde, tal vez horas más tarde) otra parte del software solicita asignar algo de memoria y obtiene el bloque incorrectamente “no utilizado”. Ahora, hay dos partes del software, cada una pensando que tienen la propiedad exclusiva de la memoria. Cuando una pieza escribe datos en la memoria, la otra puede reescribirlos fácilmente, y ese es el tipo de cosa que causará todo tipo de errores extraños.

Esto puede ser muy difícil de rastrear … el bloqueo real puede ocurrir en una parte totalmente diferente del código que la pieza que causó el problema … y es posible que el programa se bloquee en un lugar diferente y de una manera diferente cada vez que se ejecuta .

Hay otros tipos de problemas aún más sutiles: uno desagradable se denomina “pérdida de memoria” en el que la memoria se asigna, se usa y NO SE marca como “no utilizada” cuando haya terminado. Esto puede hacer que un programa de larga duración consuma muy lentamente más y más memoria. El programa puede ejecutarse aparentemente correctamente durante horas o incluso días antes de que finalmente consuma toda la memoria libre en la computadora y finalmente se bloquee.

Por lo general, una vez que encuentra el error, la solución es simple, pero hay casos en los que el problema no se puede solucionar fácilmente. Especialmente si el algoritmo completo en el que se basa el programa tiene la culpa.

Existe un conjunto considerable de herramientas que lo ayudan a encontrar errores de diferentes tipos: “depuradores”. Pero solo ayudan hasta ahora. Al final, una de las muchas habilidades que necesita un buen programador es rastrear errores de manera eficiente.

More Interesting

¿Cómo encriptamos los datos?

¿Por qué se sigue utilizando el modo de cifrado CBC en lugar del modo CTR aunque el modo CBC ha demostrado ser vulnerable (por ejemplo, ataque de caniche)?

Teóricamente, ¿es posible crear un sistema de almacenamiento informático que imite el de un cerebro?

¿El aprendizaje automático es una estafa?

¿Por qué el reloj de mi computadora portátil suele ir más rápido?

¿Cómo hacen los desarrolladores de hardware hacer un SDK para su producto?

¿Es técnicamente posible tener un adaptador USB-C hembra a micro-macho USB? Muchos conectores micro USB> USB-C, pero ninguno lo hace al revés.

¿Cuál es el mejor libro para comenzar a aprender la interacción hombre-computadora (HCI)?

Imágenes e íconos digitales: ¿Habrá una alternativa superior a los GIF para animaciones en el futuro cercano?

¿Qué es el cálculo de Lambda en términos simples?

¿Cómo explicaría los servidores de bases de datos y el alojamiento de bases de datos a un novato que solo sabe crear bases de datos en una máquina local?

¿Cuál es el futuro de la informática estocástica y aproximada?

¿Es posible ejecutar PowerMTA en mi máquina local y qué requisitos se necesitan?

¿Es una buena idea estudiar física e informática en las universidades de Washington y Lee?

¿Cómo ven las empresas de tecnología de Silicon Valley a los estudiantes que estudian Ciencias de la Computación en universidades del Reino Unido en comparación con los que estudian en universidades estadounidenses más conocidas?