Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porPrimo Fallas Modificado hace 10 años
1
04/02/031 INSURE ++ v6.0 Salvador Benimeli Fenollar Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia
2
04/02/032 INTRODUCCION (i) Los errores de corrupción de memoria y de posiciones de memoria no referenciadas pueden llegar a ser extremadamente difíciles de descubrir Insure ++ examina y testea el código, y produce una serie de informes indicando la localización exacta de los errores. Ayuda a que los costes de mantenimiento sean menores.
3
04/02/033 INTRODUCCION (ii) Realiza un análisis de cobertura, indicando claramente que secciones del código han sido testeadas y cuales no. En resumen, ayuda a evitarnos extensas sesiones de depuración de errores que resultan difíciles de encontrar en tiempo de compilación.
4
04/02/034 INTRODUCCION (iii) Dos de los problemas más serios en la producción de problemas Software son: el tiempo que se emplea en la “depuración” del producto y el número de “bugs” que no son detectados durante la fase de pruebas. Insure ++ trata : Corrupción de memoria debido a escrituras o lecturas del variables globales, locales... Operaciones sobre punteros ilegales Lectura de variables no inicializadas Memory leaks Errores de asignación y liberación memoria dinámica.
5
04/02/035 ANÁLISIS DE COBERTURA Análisis de Cobertura con TCA Total Coverage Analysis (TCA) integrado en Insure+++ muestra que partes del código han sido testeadas y cuales no. La finalidad de los test de cobertura es analizar cuantas funciones y instrucciones han sido ejecutadas.
6
04/02/036 ANÁLISIS DE COBERTURA Con TCA, nos podemos ahorrar mucho tiempo, evitándonos testear una y otra vez las mismas partes del código y empezar con las que realmente no han sido probadas. Ayuda al usuario modificar los procedimientos de test para cubrir todas las partes
7
04/02/037 INUSE Herramienta grafica diseñada para ayudar a evitar problemas de memoria, mostrando en tiempo real el uso de memoria que hace nuestra aplicación. Sabemos con certeza como nuestro programa asigna y libera los bloques de memoria dinámica, lo que puede ayudarnos o optimizarla. También nos ayuda a : Saber cuanta memoria usa nuestra aplicación en función de eventos de usuario Determinar si diferentes estrategias de asignación pueden mejorar el rendimiento.
8
04/02/038 INSRA Interfaz gráfica donde se muestran los mensajes de error generados por Insure++.El formato de los mensajes permiten la fácil localización en el código fuente permitiendo su correccción.
9
04/02/039 INUSURE ++. Control Panel
10
04/02/0310 Sistema de Posicionamiento en 2D Integración de Insure ++ en el entorno Visual C++
11
04/02/0311 Sistema de Posicionamiento en 2D Si no se ha realizado alg ú n avance, al intentar mostrar la ruta real o la ruta estimada se produce un error de ejecuci ó n.
12
04/02/0312 Sistema de Posicionamiento en 2D El error es detectado por Insure++ señalando la línea de código donde se ha producido.
13
04/02/0313 Sistema de Posicionamiento en 2D
14
04/02/0314 Sistema de Posicionamiento en 2D Errores generados por Insure++ tras la traza realizada
15
04/02/0315 Sistema de Posicionamiento en 2D Informe generado tras la ejecución del programa
16
04/02/0316 TEST DE COBERTURA Representación gráfica del test de cobertura por funciones. El test está basado en el log de las diversas ejecuciones.
17
04/02/0317
18
04/02/0318 TEST DE COBERTURA
19
04/02/0319 SELECTIVE CHEKING Con el símbolo del pre-procesador _INSURE_ automáticamente definido, podemos insertar llamadas condicionales y habilitar o deshabilitar el chequeo en tiempo de ejecución. grind_away() { #ifdef __INSURE__ _ Insure_set_option("runtime", "off"); #endif... code... #ifdef __INSURE__ _Insure_set_option("runtime", "on"); #endif }
20
04/02/0320 INUSE : HISTORY Muestra la cantidad de memoria asignada en el Heap. Este gráfico se actualiza periodicamente para mostrar el estado actual de la aplicación y suele ser usado para llevar un seguimiento del uso de la memoria que consume la aplicación
21
04/02/0321 INUSE : BLOCK FRECUENCY Número de bloques de cada tamaño que han sido asignados. Esto suele ser útil para elegir una strategia de optimización de memoria frente a otra.
22
04/02/0322 INUSE:TIME LAYOUT REPORT Muestra como los bloques de memoria son asignados durante la ejecución del programa.
23
04/02/0323 INUSE : HEAP LAYOUT “Layout” de la memoria con los bloques que han sido asignados dinámicamente, incluyendo los espacios libres entre ellos. Sirve para ver la fragmentación y los “memory leaks”
24
04/02/0324 INUSE : MEMORY USAGE Representa cuantas veces cada una de las llamadas a memoria se han realizado. También muestra el tamaño actual del heap y la cantidad de memoria en uso.
25
04/02/0325 INUSE: Query Reports Con Query podemos saber con exactitud cuanta memoria se asigna a bloques de un determinado tamaño o lugar.
26
04/02/0326 INUSE: Query Reports Por ejemplo, la siguiente consulta obtiene de los bloques entre 60 y 70 bytes de tamñano obtenemos los ‘block id’ y las trazas de la pila de todos los bloques comprendidos entre ese tamaño
27
04/02/0327
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.