En pocas palabras, es despojar el archivo se quitó el abrigo, el hormigón es despojado de algunos de los símbolos y la información de depuración de un archivo específico, el archivo más pequeño.
Podemos entrar en la franja hombre en la cáscara de la tira para obtener alguna información relevante
STRIP(1) GNU Development Tools STRIP(1)
NAME
strip - Discard symbols from object files.
SYNOPSIS
strip [-F bfdname |--target=bfdname]
[-I bfdname |--input-target=bfdname]
[-O bfdname |--output-target=bfdname]
[-s|--strip-all]
[-S|-g|-d|--strip-debug]
[--strip-dwo]
[-K symbolname |--keep-symbol=symbolname]
[-N symbolname |--strip-symbol=symbolname]
[-w|--wildcard]
[-x|--discard-all] [-X |--discard-locals]
[-R sectionname |--remove-section=sectionname]
[-o file] [-p|--preserve-dates]
[-D|--enable-deterministic-archives]
[-U|--disable-deterministic-archives]
[--keep-file-symbols]
[--only-keep-debug]
[-v |--verbose] [-V|--version]
[--help] [--info]
objfile...
DESCRIPTION
GNU strip discards all symbols from object files objfile. The list of
object files may include archives. At least one object file must be
given.
strip modifies the files named in its argument, rather than writing
modified copies under different names.
XCOFF fin de reducir el tamaño de los archivos de tira (Common Object File Format) de objetos. comando de la tira se elimina selectivamente de la información del fichero objeto de línea XCOFF número, información de la relocalización, la sección de depuración, la sección typchk, la sección de comentarios, la totalidad o parte de la cabecera del archivo y la tabla de símbolos. Ahorrar mucho espacio. Especialmente para el espacio integrado, es muy importante.
Podemos utilizar el comando de archivo para ver un archivo, de la siguiente manera:
Antes de adelgazamiento 2856byte grande, llena el espacio de ahorro de casi el doble! Extracción del coste de la información de número de línea, información de la relocalización, la sección de depuración, la sección typchk, la sección de comentarios, la totalidad o parte de la cabecera del archivo y la tabla de símbolos. Incapaz de depuración y posicionamiento
Ejecutar comando a la pérdida de peso, que es una tira incrustado en el brazo-linux-gnueabihf-tira
arm-linux-gnueabihf-strip dump_test
5984byte Tamaño del archivo
tira no sólo puede, sino también en el desarrollo real, a menudo tenemos que estar dirigida contra los archivos ejecutables y bibliotecas dinámicas en las operaciones de la tira de la biblioteca dinámica .so, reducir el espacio de piso. Y cuando la depuración (como el uso addr2line), es necesario registrarse. Por lo tanto, la práctica habitual es: antes de la tira está destinado para la depuración, la biblioteca se utiliza para despojar a la liberación real, los dos tienen una relación correspondiente. Una vez que la tira publicada biblioteca es un problema, no se puede encontrar la tira correspondiente de la biblioteca para localizar.
En general, la estructura de archivos COFF:
El formato COFF objeto se utiliza tanto para los ficheros objeto (.o de extensión) y archivos ejecutables.
formato de objeto COFF tanto para los archivos intermedios, archivos ejecutables
Parte de la información sólo está presente en los archivos de objetos,
Sólo una parte de la información que aparezca en el archivo de objeto
otra información sólo está presente en los archivos ejecutables.
Otra información aparece sólo en el archivo ejecutable
Tabla G-1 componentes de archivo COFF Coff archivos
nombres de las secciones Sección |
Descripción Descripción |
encabezado del archivo encabezamiento |
Contiene información general; siempre presente. El mensaje contiene un general, siempre eficaz |
encabezado opcional Corte avanzado |
Contiene información acerca de un archivo ejecutable; por lo general sólo está presente en ejecutables. Contiene información sobre el archivo ejecutable, por lo general sólo en el archivo ejecutable |
cabecera de la sección jefe de sección |
Contiene información sobre las distintas secciones COFF; uno para cada sección. Conteniendo cada uno una información de sección COFF diferente, cada sección correspondiente a cada encabezado de sección |
secciones de datos en bruto área de datos en bruto |
Uno para cada sección que contiene datos en bruto, tales como instrucciones de máquina y variables inicializadas. Cada segmento contiene datos, tales como código máquina ejecutable, y se utiliza para inicializar las variables |
información de la relocalización información de la relocalización |
Contiene información acerca de referencias no resueltas a símbolos en otros módulos; El archivo de símbolos contiene información de la otra no es direcciones determinadas. uno para cada sección que tiene referencias externas. Cada segmento tiene un símbolo externo Por lo general, sólo está presente en los ficheros objeto y no en archivos ejecutables. Y no en el archivo de destino por lo general aparece en un archivo ejecutable |
información de número de línea información de número de línea |
Contiene información de depuración acerca de los números de líneas de código; héroe información de depuración números de líneas de código fuente uno para cada sección si se compila con la opción -g. Si la opción del compilador -g contiene parámetros, a continuación, cada sección contiene |
tabla de símbolos tabla de símbolos |
Contiene información acerca de todos los símbolos en el archivo de objeto; Todos los símbolos contienen la información del archivo de destino presente si no despojado de un archivo ejecutable. archivos de objetos contienen archivos ejecutables si no se elimina, entonces hay |
tabla de cadenas tabla de cadenas |
Contiene los nombres de símbolos largos. Más de 8 bytes contienen el nombre simbólico |