Lo que es el uso de .los archivos de mapa de VC++ enlazador produce cuando /MAPA de parámetro o «Generar archivo de mapa de» configuración del proyecto se utiliza? Cuando necesito de ellos y ¿cómo me beneficio de ellos?

  • GNU Gas genera .map archivos con -a.
InformationsquelleAutor sharptooth | 2009-04-16

5 Comentarios

  1. 31

    Un buen artículo sobre cómo utilizar los archivos de mapa para encontrar los accidentes.

    http://www.codeproject.com/KB/debug/mapfile.aspx

    Manualmente haciendo todo esto es muy interesante.

    Yo no soy consciente de ninguna herramienta que puede leer el archivo de mapa y ayuda para encontrar el lugar del accidente. Si alguien sabe por favor, actualice nosotros.

  2. 15

    Para sistemas embebidos, los archivos de mapa son mucho más útiles. (Aunque usted no lo esté utilizando Visual C++ para que 😉

    Cosas como saber cómo de cerca está ejecutando fuera de programa/datos de la memoria, y lo que la ubicación de una variable en particular reside en que son importantes.

    • Hay algo en la plataforma UNIX, similar a la lista de archivos? Si sí, ¿cómo se generan?
    • ni idea. compruebe la documentación de su compilador.
  3. 10

    WinDBG usos .mapa y .los archivos pdb para ayudar a depurar los accidentes, a la hora de analizar .hdmp y .mdmp volcados.

    Básicamente mapa de direcciones de memoria a las variables y funciones dentro de la .exe (o .dll). Muy útil en general.

    EDIT: La forma más útil para depurar «después del hecho» accidentes es el uso de WinDbg para mí (plataforma windows). Abrir y abra el archivo de volcado. A continuación, establezca la ruta de origen a un punto en el código (si la tiene), la ruta de acceso de símbolos para que apunte a su .mapa y .ap y la ruta de la imagen para el .exe, y escriba «!analizar -v» en la línea de comandos. Ahora usted tiene un completo seguimiento de la pila con las líneas de código y todo.

    Es aún mejor si usted tiene el MS servidor de símbolos en el camino, y si el montón de página completa, que estaba activado o adplus se estaba ejecutando. Ver a estos dos favoritos WinDbg de los recursos de la mina:

    Primera parada :: http://www.microsoft.com/whdc/devtools/debugging/debugstart.mspx

    La fuerza de la carga de los símbolos :: http://www.osronline.com/ShowThread.cfm?link=182377

    Sitio útil :: http://www.dumpanalysis.org/blog/index.php/category/windbg-tips-and-tricks/page/7/

  4. 8

    Necesita muy poco, pero que puede ser útil para la depuración de algunos problemas porque dan información sobre la ubicación de funciones y datos.

    Por ejemplo:

    • información detallada sobre todos los segmentos (código, datos, y otros).
    • enlace de la línea de números de código de

    Puede utilizar los archivos de mapa de herramientas de depuración.

    • Quieres decir como abrir el desmontaje del proceso y la inspección de las primas de direcciones?
    • Esa es una posibilidad. Como he dicho, se necesita muy poco, pero si usted los necesita, se alegra de que estén disponibles.
  5. 1

    Enlazador de mapas puede ser muy útil en grandes proyectos cuando usted necesita para realizar un seguimiento de las dependencias entre unidades de compilación y bibliotecas. Normalmente, un enlazador se informe un símbolo que causó problemas, y más a menudo que no, una simple búsqueda de este símbolo nombre no devuelve ningún resultado (o volverá toneladas de falsos positivos para los símbolos como read).

    Sin un enlazador mapa, la única opción que tiene es analizar todos los archivos de código fuente disponible (después de preprocesamiento pasar si macros se utilizan, que normalmente es el caso) y la esperanza de que usted encuentre el correspondiente lugar.

    Enlazador mapas suelen tener una sección llamada «la referencia al archivo/símbolo», que indica que el archivo objeto que fue requerido por otro archivo de objeto de su proyecto, y que el símbolo fue exactamente hace referencia.

    Una vez estuve trabajando en un proyecto que tenía para ser montada en un sistema sin soporte local. El enlazador se informe «undefined referencia a _localeconv_r» errores, lo que habría sido un dolor a la pista de abajo buscando a través de las fuentes. Por suerte, una GCC enlazador archivo de mapa generado con -Map=output.map reveló toda la problemática de las funciones con una sola búsqueda.

Dejar respuesta

Please enter your comment!
Please enter your name here