X
Depuración de memoria C / C ++

Depuración de memoria C y C ++

Identifique la corrupción y los defectos esporádicos de la memoria que causan fallas en el sistema y exponen vulnerabilidades de seguridad.

El depurador de memoria definitivo para C y C ++

Parasoft Insure ++ es una herramienta integral de depuración de memoria para desarrolladores de software C y C ++. Puede encontrar errores de programación y acceso a la memoria erráticos, como corrupción de montón, subprocesos no autorizados, pérdidas de memoria, matrices fuera de límites y punteros no válidos. Utilizando un analizador de código de última generación y cientos de heurísticas, Parasoft Insure ++ también analiza el código de la aplicación e informa sobre varias posibles violaciones estáticas.

¿Cómo funciona?

Parasoft Insure ++ es una herramienta de detección de errores y análisis de memoria en tiempo de ejecución para C y C ++ que identifica automáticamente una variedad de errores de programación, acceso a la memoria y seguridad difíciles de encontrar, junto con posibles defectos e ineficiencias en el uso de la memoria.

Durante las pruebas, Insure ++ verifica todos los tipos de referencias de memoria, incluidas las de memoria estática (global), de pila y compartida, ya sea en el código del usuario o en sus bibliotecas de terceros.

Las capacidades de análisis de memoria de Insure ++ de Parasoft se basan en algoritmos de instrumentación de origen patentados. La instrumentación del código fuente permite a Insure ++ detectar más tipos de errores que otras tecnologías de detección de errores de memoria, y proporciona información completa que indica las causas fundamentales de los errores encontrados, utilizando una base de datos completa de elementos de programa y estructuras de memoria. Hay dos formas de utilizar Insure ++ para el análisis de memoria y la detección de errores.

Modo de instrumentación de fuente

El primer y más detallado análisis se logra con la instrumentación completa del código fuente. Esto requiere que las fuentes de la aplicación estén compiladas y vinculadas con Insure ++, que genera sus propios archivos instrumentados que se pasan al compilador real.

Modo de enlace

Sin instrumentación de código fuente, al vincular el código de objeto de la aplicación y las bibliotecas con Insure ++, la herramienta puede "espiar" la interfaz del programa de aplicación / kernel para detectar errores como fugas, referencias de memoria erróneas, errores de uso de API estándar, etc.

Caracteristicas

Durante la depuración en tiempo de ejecución, Parasoft Insure ++ verifica todas sus referencias de memoria, incluidas las de memoria estática (global), de pila y compartida, tanto en su propio código como en bibliotecas de terceros.

  • Memoria de pila y pila dañada
  • Uso de variables y objetos no inicializados
  • Errores de límites de cadenas y matrices en el montón y la pila
  • Uso de punteros colgantes, NULL y sin inicializar
  • Todo tipo de asignación de memoria y errores o desajustes gratuitos
  • Todo tipo de fugas de memoria
  • Incompatibilidad de tipos en declaraciones globales, punteros y llamadas a funciones

En el momento de la compilación, Parasoft Insure ++ detecta errores al identificar desviaciones de los estándares C / C ++ que pueden provocar pérdidas de memoria o inestabilidades de la aplicación.

  • El elenco del puntero pierde precisión
  • Discrepancia en la especificación de formato
  • Discrepancia en el tipo de argumento
  • El código no se evalúa, no tiene ningún efecto o es inalcanzable
  • Identificador indefinido
  • Variable declarada, pero nunca utilizada
  • Devolviendo el puntero a la variable local
  • La función devuelve un valor inconsistente
  • Variables no utilizadas

El análisis de cobertura de Parasoft Insure ++ permite la identificación visual de qué secciones de código se han ejecutado y cuáles no. Esta capacidad permite a los usuarios centrarse en probar casos de uso para las áreas de código que aún no se han ejercido. Insure ++ también puede agregar un "recuento de aciertos" a los bloques básicos, mostrando cuántas veces se ha ejecutado cada bloque para detectar cuellos de botella de rendimiento sorprendentes.

Los desarrolladores de software obtienen una vista gráfica de los datos en vivo sobre el uso continuo de la memoria y las asignaciones de memoria a lo largo del tiempo con visibilidad específica del uso general del montón, asignaciones de bloques, posibles fugas pendientes, etc. Si se ha filtrado un bloque, puede ver el seguimiento de la pila de asignación, así como el seguimiento de la pila donde se produjo la fuga. Se supervisa el tamaño general del montón y se realiza un seguimiento de varias estadísticas, como el número de llamadas de asignación y desasignación.

Parasoft Insure ++ informa cualquier problema encontrado. La información detallada que obtiene incluye el tipo de error, el archivo fuente y el número de línea, el contenido real de la línea del código fuente, la expresión que causó el problema y la información sobre todos los punteros y bloques de memoria involucrados en el error. Los desarrolladores de software también pueden ver los valores del puntero, los bloques de memoria señalados, la información de asignación de bloques y el seguimiento de la pila que muestra cómo llegó el programa a la ubicación del error.

La mayoría de los proyectos son grandes y contienen varios archivos. Sin embargo, hay ocasiones en las que solo necesitará investigar un puñado de esos archivos en busca de presuntas violaciones del tiempo de ejecución. Esto se hace cuando Parasoft Insure ++ instrumenta los archivos individuales que decide investigar. Los archivos individuales pueden luego vincularse a un ejecutable no instrumentado. Esto encuentra errores en los archivos en cuestión a nivel de fuente con el mínimo esfuerzo.

Benefíciese del enfoque Parasoft

Encuentre la causa raíz de los problemas de seguridad

Con una mayor conciencia de que la seguridad ya no es una consideración opcional, es fundamental garantizar que sus aplicaciones sean seguras en el núcleo. Utilice Parasoft Insure ++ para protegerse de las vulnerabilidades de seguridad raíz derivadas de problemas de memoria, como corrupción de pila, abuso de puntero, desbordamiento de búfer, memoria no inicializada y comportamiento definido por implementación o indefinido.

Administre y depure su uso de memoria

Parasoft Insure ++ ayuda a los usuarios a identificar dónde están los problemas de memoria, al tiempo que proporciona herramientas para identificar lo que está sucediendo tanto dentro del código como en la memoria. Con el análisis de cobertura integrado y la visualización dinámica de la memoria, puede encontrar áreas del código que deben ejercitarse para verificar errores y localizar las causas de la fragmentación del montón.

Encuentre problemas de memoria en minutos

Descubra con éxito errores de alto riesgo para aplicaciones comerciales y críticas para la seguridad en industrias como la financiera, del transporte, automotriz, aeroespacial y médica. Los equipos de desarrollo de software pueden encontrar problemas molestos en semanas, o incluso minutos, con Parasoft Insure ++.

Los problemas que solían llevarnos varios días o incluso semanas para localizarlos, podemos encontrarlos y solucionarlos de forma rutinaria en unas pocas horas con Insure ++.

- Hewlett Packard

Prueba Parasoft