Comando nm de Linux

Comando Nm De Linux



Hay diferentes casos en los que puede estar trabajando con archivos objeto o archivos ejecutables. Estos escenarios pueden requerir que verifique los símbolos en su archivo. En Linux, puede utilizar el comando 'nombre' para mostrar información sobre los símbolos disponibles en su objeto o archivo ejecutable.

Según su página de manual, el comando 'nm' se utiliza para 'enumerar los símbolos de los archivos objeto'. El mismo comando también funciona con archivos ejecutables y lo analizaremos en detalle a lo largo del artículo de hoy.







Comprender el comando Nm de Linux usando diferentes ejemplos

El comando 'nm' no viene preinstalado en algunas distribuciones de Linux. Intente verificar su versión con el siguiente comando para ver si está instalado:



$ Nuevo Méjico --versión



Si obtiene un resultado similar al siguiente, significa que “nm” no está instalado:





Entonces, instálelo usando 'apt' con el siguiente comando. Asegúrese de confirmar la acción presionando 'y' cuando se le solicite:

$ sudo apto instalar binutils



Ahora puede verificar que “nm” esté disponible en su sistema comprobando su versión nuevamente.

Ahora ha instalado correctamente 'nm' en su sistema Linux. Lo siguiente es aprender a usarlo para obtener información sobre los archivos de su objeto de destino.

Ejemplo 1: ejecutar el comando Nm

Con “nm”, cuando lo ejecuta, el comando busca un archivo llamado “a.out” que es un archivo objeto ejecutable. Si lo encuentra, muestra los símbolos contenidos.

$ Nuevo Méjico

Sin embargo, si no tiene dicho archivo en el directorio actual, obtendrá un resultado como se muestra en la siguiente imagen:

Creemos un archivo C++ y luego compilémoslo usando g++. Cuando lo hacemos, obtenemos un archivo “a.out” que podemos usar con el comando “nm”.

Si volvemos a ejecutar el comando 'nm', observe que obtenemos un resultado que muestra todos los símbolos en nuestro archivo objeto. Así funcionan los comandos 'nm'.

Ejemplo 2: visualización de símbolos específicos

Es posible encontrar un símbolo específico en su archivo de objeto. Si solo tiene un archivo objeto, como en nuestro caso, y desea encontrar el símbolo 'principal', ejecute el comando de la siguiente manera:

$ Nuevo Méjico -A a.fuera | agarre principal

Sin embargo, si tiene varios archivos objeto o ejecutables, cambie su comando para que aparezca de la siguiente manera:

$ Nuevo Méjico -A * .afuera | agarre principal

Ejemplo 3: mostrar los símbolos no definidos

Con la opción '-u', es posible obtener solo los símbolos no definidos en su archivo objeto. Aquí hay un ejemplo donde agregamos la opción '-u' al ejecutar el comando:

$ Nuevo Méjico -en a.fuera

Tenga en cuenta que el resultado que obtenemos es menor y eso se debe a que no se muestran todos los símbolos, solo los no definidos.

Ejemplo 4: mostrar el tamaño de un símbolo

Puede buscar un símbolo en particular y mostrar su tamaño. Para eso, use la opción '-s'. Busquemos el objeto 'abi' en nuestro caso y veamos qué obtenemos.

$ Nuevo Méjico -S | agarre abbi

Sólo se muestran aquellos símbolos que coinciden con sus criterios de búsqueda y su tamaño.

Ejemplo 5: obtener los símbolos dinámicos

La opción '-D' especifica que solo los símbolos dinámicos deben mostrarse en la salida. En la siguiente imagen, podemos ver que después de agregar '-D', nuestra salida se reduce ya que solo se imprimen los símbolos dinámicos:

Ejemplo 6: cambiar el formato de salida

El formato de salida predeterminado que utiliza “nm” es “bsd”. Sin embargo, puede especificar un formato diferente usando la opción '-f'. Por ejemplo, si queremos utilizar el formato posix, ejecute nuestro comando 'nm' de la siguiente manera:

$ Nuevo Méjico -F posix a.out

Ejemplo 7: trabajar con un archivo

En lugar de especificar cada opción que desea usar con el comando 'nm' en la terminal, puede usar un archivo. El archivo contiene las opciones y usted agrega el archivo al ejecutar el comando 'nm'. El comando verifica todas las opciones del archivo y realiza la acción necesaria.

A continuación se muestra un ejemplo de un archivo 'archivo1' que contiene la opción '-g –size-sort'.

Para hacer referencia al archivo, ejecute el comando como se muestra a continuación:

$ Nuevo Méjico @ archivo1

Cuando se ejecute el comando, obtendrá el resultado deseado. En este caso, ordenamos los símbolos y agregamos la opción “-g” para obtener los símbolos externos e ignorar el resto.

Conclusión

El comando 'nm' permite a los usuarios trabajar con símbolos. Puede utilizar el comando para mostrar todos los símbolos en un archivo ejecutable u objeto. Esta publicación explica sobre el comando 'nm'. Además, proporcionamos diferentes ejemplos para asegurarnos de que se sienta cómodo usando el comando. Con suerte, el comando 'nm' ahora está claro.