La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

04/02/031 INSURE ++ v6.0 Salvador Benimeli Fenollar Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia.

Presentaciones similares


Presentación del tema: "04/02/031 INSURE ++ v6.0 Salvador Benimeli Fenollar Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia."— Transcripción de la presentación:

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


Descargar ppt "04/02/031 INSURE ++ v6.0 Salvador Benimeli Fenollar Laboratorio de Sistemas de Información Facultad de Informática Universidad Politécnica de Valencia."

Presentaciones similares


Anuncios Google