2009-04-08 15 views
14

Estoy intentando analizar una aplicación de iPhone utilizando la aplicación Leaks y parece que todo funciona bien, excepto cuando trato de ver información detallada sobre una pérdida de memoria en particular. Parece que Leaks no está cargando mi código fuente. Al mirar la vista de la pila a la derecha, puedo ver llamadas que hacen referencia a marcos de iPhone, pero todo lo que hace referencia al código fuente que he escrito está vacío. La captura de pantalla a continuación ilustra mi punto. Los bloques que son de color azul claro deberían hacer referencia a mi código fuente. ¿Alguien ha tenido este problema? ¿Leaks simplemente no encuentra mi código fuente/símbolos correctamente? ¡Gracias!Fugas de instrumentos: no muestra mi código fuente

EDIT: estoy compilando la aplicación usando el 'Dispositivo - iPhone OS 2.2' con la configuración de depuración. Lanzo Fugas seleccionando Ejecutar-> Comenzar con la herramienta de rendimiento-> Fugas dentro de Xcode. ¿Cómo podría uno "hacer que los archivos de símbolos estén disponibles" para Leaks?

alt text http://www.andrewgarrison.com/forum/leaks_nosource.png

Respuesta

2

Elimine los caracteres no ASCII, tanto de su disco de arranque
y nombre de host (ver el panel Compartir de Preferencias del Sistema) y reinicie.

Ta da!

+0

¿Esto funcionó? Tanto mi disco de inicio como el nombre de host son palabras sueltas con solo caracteres ASCII, pero tampoco veo símbolos. –

+0

Esto me ayudó con los registros de bloqueo del estilo 2.x. Para el estilo 3.0 tuve que aprender algunos perl y arreglar el script symbolicate. Probablemente haya una versión definitiva por ahora. –

+0

¿Qué quieres decir con "corregir el script symbolicate?" Estoy atrapado en este mismo problema sin personajes no Ascii en cualquier lugar. Los instrumentos * usados ​​* funcionan para mí hasta que mi Snow Leopard "actualice". – n8gray

1

¿Se compila en modo de depuración y crea los archivos disponibles en el símbolo?

+0

sería el downvoter por favor deje un comentario. Gracias. –

8

Vi esto suceder, pero en una configuración diferente. En Snow Leopard 10.6.1, Xcode 3.2, Instruments 2.0, no obtuve ningún símbolo en Leaks al ejecutar iPhone OS 3.0 en el simulador. La búsqueda en los foros de desarrolladores de iPhone de Apple reveló que este era un problema conocido con el SDK de iPhone 3.0 (que se estaba trabajando), y cambiar el SDK activo a 3.1 fue una solución alternativa. ¡Efectivamente, funcionó para mí!

+1

Tuve el mismo problema y, de manera similar, cambiar el SDK activo a iPhone 3.1 también me funcionó. ¡Gracias! – keremk

1

Si su directorio de destino de compilación comienza con "." (Por ejemplo, estaba usando ".xcode-build"), entonces los archivos .dsym no se encontrarán. Para mi caso, cambiar el directorio de construcción para que sea "xcode-build" solucionó el problema y ahora todos los símbolos de mi aplicación aparecen en los rastros de la pila.

1

Tuve el mismo problema. Resultó que había establecido el directorio de compilación en/tmp/xcode. Cambiar esto de vuelta al valor predeterminado solucionó el problema. Esto fue con Xcode 3.2.3.

13

Para iOS 4.0 y superior, la manera de solucionar los símbolos y convertir esas direcciones de memoria inútiles en los nombres de archivo hermosas, nombres de funciones y números de línea es la siguiente:

  1. En Xcode, vaya a Ejecutar -> Ejecutar con la herramienta de rendimiento y elija su instrumento
  2. Después de que se cargue Instruments, presione el botón Detener para detener la grabación. Vaya a Archivo -> Volver a simbolizar documento.
  3. En la nueva ventana, haga clic en Ruta y haga clic en el botón más (+) para agregar una nueva ruta. Navega a la carpeta que contiene tu archivo de proyecto y haz clic en Abrir. Haga clic en Symbolicate.
  4. ¡Ganar!

Estaba buscando esto por un buen mes antes de que finalmente encontrara la solución. ¡Espero que esto ayude a algunos de ustedes!

+1

¡Esto funcionó para mí! –

+1

Esto funcionó para mí también :) muchas gracias –

+1

Gracias por esta respuesta, no pude obtener nada que sugiriera otras preguntas similares. Esto funcionó perfectamente. –

2

Proyecto Configuración>Proyecto Edición

Elija depuración objetivo

Haga clic Construir Tab

Asegúrese de Gaza Producto Vinculado no está marcada

0

Tengo Snow Leopard con Xcode 4.5.2 - Instruments 4.5 Una vez que haya configurado la ubicación predeterminada de Debug en Legacy, comenzó a mostrar

Ir a Archivo ----> Configuración del proyecto ----> Avanzado --- Seleccionar legado

Debug Location ---Legacy Settings

Cuestiones relacionadas