nm命令】的更多相关文章

转:http://blog.csdn.net/stpeace/article/details/47089585 一般来说, 搞linux开发的人, 才会用到nm命令, 非开发的人, 应该用不到. 虽然nm很简单, 但是还是有必要写几句, 聊表心意. nm不是ni ma的缩写, 当然, 也不是ni mei的缩写, 而是names的缩写, nm命令主要是用来列出某些文件中的符号(说白了就是一些函数和全局变量等).  下面, 我们一起来看看. test.h为: void print(); void p…
ar 命令详解 今天,跟着我们的技术大牛学了不少东西,首先就是这个ar命令啦. 当我们的程序中有经常使用的模块,而且这些模块在其他程序中也会用到,为了实现代码重用减少软件开发周期,我们可以将它们生成库,在需要的时候直接调用就可以了.这里介绍命令的ar,就是用来对库操作.在实际的项目中ar命令一般是写在makefile中,或者shell脚本中. ar 命令 可以用来创建.修改和提取库(档案archives) 命令格式 ar [--plugin name] [-X32_64] [-]p[mod [r…
strings和nm命令 strings 一.简介: 显示文件中的可打印字符 二.用法 strings [option(s)] [file(s)] 选项说明: -a – –all 扫描整个文件而不是只扫描目标文件初始化和装载段(缺省时,是只扫描初始化和装载段) -f –print-file-name 在显示字符串前先显示文件名 -n –bytes=[number] 找到并且输出所有NUL终止符序列 - 设置显示的最少的字符数,默认是4个字符 -t –radix={o,d,x} 输出字符的位置,基…
摘自http://blog.csdn.net/solmyr_biti/article/details/6565479 nm命令介绍的很多,但大多不介绍其函数符号标志的含义.最近在调试动态库时常用到,其中用的最多的用法:nm -A * |grep “aaa” | c++filt  // -A 为了显示文件, c++filt转换为可读风格,好像有个参数也能实现类似功能 其他内容整理如下(原作者未知): nm用于列出目标文件的符号清单,如果没有指定目标文件,则默认为“a.out”.nm的格式如下: n…
它用来列出一个目标文件中的各种符号. nm命令还是比较简单而且强大的.它用来列出一个目标文件中的各种符号.符号的种类很多,以下是一些常见的符号类型 nm输出字符 含义 R Read only symbol. 比如在代码中有一个const MAXDATA = 3095; 则MAXDATA就是一个Read only symbol N 这是一个调试符号 D 这是一个已经初始化的变量的符号.比如代码中int i = 1和char *str = "Hello"则i和str都是这种类型的符号 T…
http://www.cnblogs.com/wangkangluo1/archive/2012/07/02/2572438.html 用途 显示关于对象文件.可执行文件以及对象文件库里的符号信息. 语法 nm [ -A] [ -C] [ -X {32|64|32_64}] [ -f] [ -h ] [ -l ] [ -p ] [ -r] [ -T ] [ -v] [ -B| -P] [ -e| -g | -u] [ -d| -o| -x| -tFormat ] File ... 描述 nm 命…
linux下强大的文件分析工具 -- nm 什么是nm nm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件.库文件.可执行文件中的符号表,返回二进制文件中各段的信息. 目标文件.库文件.可执行文件 首先,提到这三种文件,我们不得不提的就是gcc的编译流程:预编译,编译,汇编,链接. 目标文件 :常说的目标文件是我们的程序文件(.c/.cpp,.h)经过预编译,编译,汇编过程生成的二进制文件,不经过链接过程,编译生成指令为: gcc(g++) -c file.c(file.c…
linux下强大的文件分析工具 -- nm 什么是nm nm命令是linux下自带的特定文件分析工具,一般用来检查分析二进制文件.库文件.可执行文件中的符号表,返回二进制文件中各段的信息. 目标文件.库文件.可执行文件 首先,提到这三种文件,我们不得不提的就是gcc的编译流程:预编译,编译,汇编,链接. 目标文件 :常说的目标文件是我们的程序文件(.c/.cpp,.h)经过预编译,编译,汇编过程生成的二进制文件,不经过链接过程,编译生成指令为: gcc(g++) -c file.c(file.c…
一.参考文章 网址1:https://linuxtools-rst.readthedocs.io/zh_CN/latest/tool/nm.html 参考2: man nm 参考3:<linux编程一站式学习>第20章 链接详解 的例20.1 二.功能 nm 命令显示关于指定 File 中符号的信息,文件可以是对象文件.可执行文件或对象文件库.如果文件没有包含符号信息,nm 命令报告该情况,但不把它解释为出错条件.(list symbols from object files) 三.截图 四.…
nm命令(names):输出包含三个部分:1 符号值.默认显示十六进制,也可以指定: 2 符号类型.小写表示是本地符号,大写表示全局符号(external); 3 符号名称. 例如:nm SimpleSection.o 0000000000000000 T func1 0000000000000000 D global_init_var 0000000000000004 C global_uninit_var 0000000000000021 T main U printf 0000000000…
nm在linux中列出目标文件的符号清单,常用来查看动态链接库中的函数 nm支持的选项如下 -a   按照man手册,仅列出调试信息,实际上却是调试信息+正常信息 -A   增加一列显示目标文件,没有实际意义 -C   将低级符号信息编码成便于查看的用户信息,最终效果是符号清单呈现出class::memberfunction形式的信息,最常用的选项 -D   显示动态符号,以目标文件为so为例,显示了so中增加的符号信息以及so引用的so的符号信息 -f   指定不同的输出格式,改变命令输出格式…
一 常用脚本 1 打包脚本 脚本如下,下面附上ar 和 ranlib命令参考(命令来自于网络) ALLLIB=*.aFILE=`ls *.a`#原来的库解压重命名 for F in $FILEdo        ar x $F        OBJ=`ar t $F`        for O in $OBJ        do                mv $O ${F}_${O}        donedone #ar c 创建一个库,ar r 插入文件.ar s ==ranlib 向…
#include <stdio.h> #include <iostream> using std::cout; using std::endl; //这里的两个不同的add函数根据函数的参数个数不同,编译为目标文件后 //名字发生变化 int add(int x = 0, int y = 0) { return x + y; } int add(int x, int y, int z) { return x + y + z; } int main(void) { int a = 3…
一.简介 显示关于对象文件.可执行文件以及对象文件库里的符号信息. 二.选项 http://www.cnblogs.com/wangkangluo1/archive/2012/07/02/2572438.html 三.实例 http://www.cnblogs.com/wangkangluo1/archive/2012/07/02/2572438.html 四.其他 1)符号含义 http://blog.chinaunix.net/uid-28458801-id-3475711.html…
转: http://blog.csdn.net/endoresu/article/details/6967435 以su命令为例. 查看su命令的路径: # which su /bin/su 查看su是由哪个包安装的: # rpm -qf /bin/su coreutils-5.97-12.1.el5 去网上搜索“coreutils-5.97-12.1.el5.src.rpm”包,注意,后面还多了个“.src”,表示源代码的安装包. 将下载到的源代码的包直接安装是行不通的,需要先安装下列.rpm…
test命令命令功能test命令是shell环境中测试条件表达式的实用工具.命令语法test(选项)选项说明-b〈文件〉如果文件为一个块特殊文件,则为真;-c<文件〉,如果文件为一个字符特殊文件,则为真;-d〈文件〉:如果文件为一个目录,则为真;-e〈文件〉:如果文件存在,则为真;-f〈文件〉:如果文件为一个普通文件,则为真;-g〈文件〉:如果设置了文件的SG旧位,则为真;-G〈文件〉:如果文件存在且归该组所有,则为真;-k〈文件〉:如果设置了文件的粘着位,则为真;-O〈文件〉:如果文件存在并且…
U-Boot上电启动后,按任意键可以退出自动启动状态,进入命令行. U-Boot 2010.03 (Sep 25 2011 - 16:18:50)     DRAM: 64 MB     Flash: 2 MB     NAND: 64 MiB     In: serial     Out: serial     Err: serial     Net: CS8900-0     Hit any key to stop autoboot: 1 在命令行提示符下,输入U-Boot的命令并执行.U-…
下列部分将详细描述 WLST 命令和变量.主题包括:  WSLT 命令类别概述  浏览命令  控制命令  部署命令  诊断命令  编辑命令  信息命令  生命周期命令  节点管理器命令  树命令  WLST 变量参考 WSLT 命令类别概述 注意: 有关命令语法要求,建议您查看 WLST 命令的语法. WLST 命令分为下列几种类别. 表 A-1 WLST 命令类别 命令类别 描述 浏览命令 导航配置 Bean 或运行时 Bean 的层次,并控制提示显示. 控制命令  连接到服务器,或断开与服务…
本文转载自:http://www.cnblogs.com/yaozhongxiao/archive/2012/03/16/2400473.html 如需转载,请注明原始出处.谢谢. ---------------------------------------------------------------------------------------- gcc 使用中常用的参数及命令    1.  执行过程      虽然我们称Gcc是C语言的编译器,但使用gcc由C语言源代码文件生成可执行…
1.bootm bootm [addr [arg ...]] - boot application image stored in memory passing arguments 'arg ...'; when booting a Linux kernel, 'arg' can be the address of an initrd image bootm命令可以引导启动存储在内存中的程序映像.这些内存包括RAM和可以永久保存的Flash. 第1个参数addr是程序映像的地址,这个程序映像必须…
ldd和nm是Linux下两个非常实用的程序分析工具.其中,ldd是用来分析程序运行时需要依赖的动态链接库的工具,nm是用来查看指定程序中的符号表信息的工具. 1 ldd 格式:ldd [options] file    功能:列出file运行所需的共享库 参数: -d    执行重定位并报告所有丢失的函数 -r    执行对函数和对象的重定位并报告丢失的任何函数或对象 tanghuaming@Thm:~/Documents/sys_programming$ whereis ldd ldd: /…
UBoot常用命令手册 U-Boot还提供了更加详细的命令帮助,可以通过”?”显示支持的命令列表,通过help [CommandName]命令还可以查看每个命令的参数说明. 1.bootm bootm [addr [arg ...]] - boot application image stored in memory passing arguments 'arg ...'; when booting a Linux kernel, 'arg' can be the address of an i…
转:http://blog.csdn.net/yuntongsf/article/details/6284517 RANLIB 的作用: CC = CC=/usr/local/ndk/toolchain/arm-eabi/bin/arm-eabi-gccLD = LD=/usr/local/ndk/toolchain/arm-eabi/bin/arm-eabi-gccAR = AR=/usr/local/ndk/toolchain/arm-eabi/bin/arm-eabi-arRANLIB =…
.在制作自己的发行版时经常需要判断某条命令需要哪些共享库文件的支持,以确保指定的命令在独立的系统内可以可靠的运行:在Linux环境下通过ldd命令即可实现,在终端下执行:ldd /bin/ls //ldd命令通常使用"-v"或"--verbose"选项来显示所依赖的动态连接库的尽可能的详细信息.即可得到/bin/ls命令的相关共享库文件列表: libtermcap.so.2 => /lib/libtermcap.so.2 (0x4001c000) libc.s…
1. 静态库 静态库文件命名:libxxxx.a 1.1 步骤: ar rcs libCalc.a *.o 1.2 用nm查看文件内容 1.3 发布并使用 gcc main.c -o mycpp.out -I include/ -L lib/ -lCalc 注意: -L:包含库路径, -l:指定库名(通常是 -lmylib (库名为libmylib.a))  2. 动态库 1. 编译与位置无关的代码,生成.o gcc -fPIC -c *.c -I ../include/ 注意:这些 *.o文件…
我们知道, 在C++中, 是允许函数重载的, 也就引出了编译器的name mangling机制, 今天我们要介绍的c++filt命令便与此有关. 对于从事linux开发的人来说, 不可不知道c++filt命令的使用. 在linux开发中, 如果要调用基础模块库, 就要包含对应的头文件, 并在makefile中指定头文件路径和对应的库. 之前我们说过了: 1. 如果没有指定对应的头文件, 则编译会报错, 提示找不到头文件. 2. 如果指定了库路径, 但实际没有库, 则会报找不错库文件的错误. 3.…
nm用于列出程序文件中的符号.建立nmtest.c文件: #include<time.h> int global1; ; static int static_global1; ; void foo() { static int internal1; ; time(); } static void bar() { } int main(void) { int local1; ; foo(); ; }执行 gcc -g -c nmtest.c然后 nm的第一列是指程序运行时符号在内存中的地址,它表…
本页面记录本人在Linux下进行C++开发时使用的常用命令,注意这里不包括比如ls,mv等linux命令,这里会持续更新.首先假设你只有一个源程序文件,叫vec.cpp,编译后的可执行程序叫vec(本文最后附有该程序Demo). 本人是在Centos6.4 64bit系统上进行测试的,GCC版本是4.4.7. 1. strings命令:查看系统glibc支持的版本 [root@lzv6 c++]# strings /usr/lib64/libstdc++.so.6 | grep GLIBC GL…
Uboot相关命令介绍 bootm bootp cmp cp crc32 echo erase flinfo go minfo loadb loads mw 14mw 用指定的数据填充内存 15md 查看内存 16mm 内存修改地址自动递增 nfs nm 19nm 修改内存值 指定地址 printenv printenv 查看环境变量可以简写为pri protect rarpboot run saveenv 保存环境变量简写sa setenv setenv 添加修改删除环境变量 sleep tf…