Linux命令备忘

find

find [path] | grep [name]

nm

列出.o .a .so中的符号信息,包括诸如符号的值,符号类型及符号名称等。所谓符号,通常指定义出的函数,全局变量等等。

nm [option(s)] [file(s)]

有用的options:

-A 在每个符号信息的前面打印所在对象文件名称;
-C 输出demangle过了的符号名称;
-D 打印动态符号;
-l 使用对象文件中的调试信息打印出所在源文件及行号;
-n 按照地址/符号值来排序;
-u 打印出那些未定义的符号;
常见的符号类型:

A 该符号的值在今后的链接中将不再改变;
B 该符号放在BSS段中,通常是那些未初始化的全局变量;
D 该符号放在普通的数据段中,通常是那些已经初始化的全局变量;
T 该符号放在代码段中,通常是那些全局非静态函数;
U 该符号未定义过,需要自其他对象文件中链接进来;
W 未明确指定的弱链接符号;同链接的其他对象文件中有它的定义就用上,否则就用一个系统特别指定的默认值。
注意几点:

-C 总是适用于c++编译出来的对象文件。还记得c++中有重载么?为了区分重载函数,c++编译器会将函数返回值/参数等信息附加到函数名称中去形成一个mangle过的符号,那用这个选项列出符号的时候,做一个逆操作,输出那些原始的、我们可理解的符号名称。

使用 -l 时,必须保证你的对象文件中带有符号调式信息,这一般要求你在编译的时候指定一个 -g 选项,见 Linux:Gcc。

使用nm前,最好先用Linux:File查看对象文件所属处理器架构,然后再用相应交叉版本的nm工具。

举例
更详细的内容见man page。这里举例说明:

nm -u hello.o
显示hello.o 中的未定义符号,需要和其他对象文件进行链接.
nm -A /usr/lib/* 2>/dev/null | grep "T memset"
在 /usr/lib/ 目录下找出哪个库文件定义了memset函数.

原文地址:https://www.cnblogs.com/zhucq/p/10323745.html

时间: 2024-08-29 21:41:07

Linux命令备忘的相关文章

实用收藏Linux命令备忘

系统操作 #使用shutdown命令马上重启系统[[email protected] ~]# shutdown –r now #使用shutdown命令马上关闭系统[[email protected] ~]# shutdown –h now #使用shutdown命令设置在15分钟以后自动重启系统[[email protected] ~]# shutdown –r +15 显示在线登陆用户 who 显示当前操作用户 whoami 显示主机名hostname 显示系统信息uname 动态显示当前耗

Linux命令备忘实例(1)——终端输出

终端是用户与shell环境进行交互的窗口,所有命令的交互结果大部分都是从终端直接显示给用户,因此这部分是友好显示结果的基础. 1.命令概览 echo是基本的终端输出命令,直接将传入的参数输入,命令格式如下: echo [options] toBeOutput 详细说明如下: 2.特性与实例说明 1.换行符 默认情况下会在每次调用之后添加一个换行符.使用-n选项可以消除这个默认值. [email protected]:~$ echo test a line [email protected]:~$

一些常用Linux命令备忘

一压缩/解压文件 1.  tar.gz          解压:tar -xzvf  xxx.tar.gz  目标文件夹 压缩:tar -cvf    name.tar.gz   源文件目录 2.  tar.bz2        解压:tar -xjvf  xxx.tar.gz  目标文件夹 压缩:tar -cvf    name.tar.bz2   源文件目录 3.   tar.xz         压缩:tar Jcvf test.tar.xz glib-2.36.0 解压:tar Jxvf

linux下常用命令备忘

转自:Linux 命令集锦 linux下查看监听端口对应的进程 # lsof -i:9000 # lsof -Pnl +M -i4 如果退格键变成了:"^h". 终端连接unix删除退格键,按住CTL键同时按delete Linux搜索 # find / -name "xxx.conf" 查看linux是32位还是64位的命令 #file /sbin/init #getconf LONG_BIT #getconf -a 在Linux和Windows下都可以用nslo

linux学习与实践(4)--常用命令备忘

1.查看程序对应进程号: ps –ef|grep 进程名 2.Linux下查看端口号所使用的进程号: 使用lsof命令: lsof –i:端口号 linux学习与实践(4)--常用命令备忘,布布扣,bubuko.com

metasploit 常用命令备忘

metasploit 常用命令备忘    MSFconsole Commands-------------------------------------24show exploits 查看所有exploitshow payloads 查看所有payloadshow auxiliary 查看所有auxiliarysearch name 搜索exploit 等info 查看加载模块的信息use name 加载模块LHOST 本机IPRHOST 目标IPset function 设置选项值setg

Mysql 命令备忘

一.mysql中获取字符串长度方法 length: 是计算字段的长度一个汉字是算三个字符,一个数字或字母算一个字符 char_length:不管汉字还是数字或者是字母都算是一个字符 二.mysql字符串长度自动补全 前补:LPAD(字段,4,0) update users set employee_id = LPAD(employee_id,4,0) where id = 1; //第一位的 employee_id少于4位,则前补充0到4位 后补:RPAD(字段,4,0) update user

FFmpeg 视频处理命令备忘

FFmpeg 视频处理命令备忘 OI退役后,最近玩you-get,发现下载下来的番剧视频和音频是分开的,于是为了给视频添加音轨,看了看FFmpeg 安装 macOS $ brew install ffmpeg 命令格式 $ ffmpeg [全局参数] [输入文件参数] -i [输入文件] [输出文件参数] [输出文件] 常用参数 -c:指定编码器 -c copy:直接复制,不经过重新编码(这样比较快) -c:v:指定视频编码器 -c:a:指定音频编码器 -i:指定输入文件 -an:去除音频流 -

linux常用命令备忘

杀掉多个进程 ps -ef | grep tornado_service | grep -v grep | cut -c 9-15 | xargs kill -s 9 清空内存缓存 echo 3 > /proc/sys/vm/drop_caches 查找大文件或目录 du -s * | sort -nr | head sudo su 配置 apt-get install sudo chmod 777 /etc/sudoers vi /etc/sudoers zhangxl  ALL=NOPASS