首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux下,使用nm命令输出可执行文件的符号表

可执行文件的符号表(symbol table)记录了某个可执行文件中的函数名、全局变量、宏定义等符号信息,这些信息对于我们调试十分重要。...目前,我正在DragonOS上开发内核栈traceback程序,因此需要导出内核文件的符号表.这个时候就需要用到Linux的nm命令。...nm命令属于GNU binutils的功能,能够输出可执行文件的符号表。它的用法是这样的: 用法:nm [选项] [文件] 列举 [文件] 中的符号 (默认为 a.out)。...按照字典序输出符号表 这里需要用到-n选项,就以DragonOS的内核文件为例,我们输出来看看: nm -n kernel.elf > nm.txt 为了便于查看,上面的命令把nm的输出重定向到了nm.txt...合成符号是链接器为各种目的创建的特殊符号,默认情况下不会显示它们,因为它们不是二进制文件源代码的一部分 --target=BFDNAME 指定系统默认格式以外的目标文件格式 以上就是nm命令的简单用法

2.2K30
您找到你想要的搜索结果了吗?
是的
没有找到

Linux系统创建可执行文件软链接

这里我们使用的案例是通过TMalign这个蛋白质打分文件,在编译好可执行文件之后,可以使用建立软链接的方法快捷的使用该可执行文件。...编译之后就会在当前路径下生成一个名为TMalign的可执行文件: $ ll 总用量 3036 drwxrwxr-x 2 dechin dechin 4096 5月 6 13:58 ./ drwxrwxr-x...,有时候会遇到想把可执行文件放在特定的路径下的问题,比如放到/usr/bin目录下,这样可以全局可调用,又不需要手动添加各种乱七八糟的系统路径。...这就需要使用到Linux中的软链接的功能,通常使用ln -s的指令即可。...本文顺带介绍了蛋白质结构评分软件TMalign的源码下载和安装使用的基本方法,编译成一个可执行文件后,可以建立一个软链接,在系统各处都可以使用,是一个比较基础的操作。

2.8K20

Linux命令执行过程

一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type...命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径 二.命令执行顺序 命令形态主要分为4类:alias别名命令、内部命令、hash缓存命令和外部命令。...中的命令 4.开启内部命令echo,再次执行echo “welcome to xi’an” 结论:说明内部命令优先于hash缓存命令和外部命令 5.定义别名alias echo=“hostname...”,如果echo 输出是hostname的内容时,则表明alias比内部命令优先 总结:命令执行顺序为alias——内部命令——hash缓存——外部命令 三.命令分类及查找基本命令 1.type command...-l 显示hash缓存 -d 清楚具体缓存命令路径 -r 删除所有命令路径 5.alias 定义别名 ualias取消别名 四.命令执行过程 ls命令执行过程: 下面进行简单分析: 1、shell

4.4K30

Linux命令执行过程

一.命令分类 Linux命令分为两类,具体为内部命令和外部命令 内部命令: 指shell内部集成的命令,此类命令无需人为安装,开机后自动运行在内存中,命令help查看所有内部命令的详情,如cd、type...命令查看: type查看命令分类,内部命令显示 shell相关信息,外部命令则显示$PATH路径 二.命令执行顺序 命令形态主要分为4类:alias别名命令、内部命令、hash缓存命令和外部命令。...中的命令 4.开启内部命令echo,再次执行echo “welcome to xi’an” 结论:说明内部命令优先于hash缓存命令和外部命令 5.定义别名alias echo=“hostname...”,如果echo 输出是hostname的内容时,则表明alias比内部命令优先 总结:命令执行顺序为alias——内部命令——hash缓存——外部命令 三.命令分类及查找基本命令 1.type command...-l 显示hash缓存 -d 清楚具体缓存命令路径 -r 删除所有命令路径 5.alias 定义别名 ualias取消别名 四.命令执行过程 ls命令执行过程: 下面进行简单分析: 1、shell

4.5K30

Manjaro Linux平台用pyinstaller打包python可执行文件

对于使用场景不是很复杂的,我们可以直接做成一个可执行文件,这样开发者只需要维护可执行文件的功能正常,以及对于各种平台的兼容性较好,这就可以了。...这里我们介绍如何使用pyinstaller去通过python源码构造一个可执行文件。...构造python测试实例 因为可执行文件的自身内容都是固定的,只能通过配置文件或者是命令行的输入参数来进行传参,因此我们构造python文件的时候主要从命令行的这个角度来出发,通过读取命令行的输入参数来决定...最常用的方法其实是直接将该可执行文件拷贝到/usr/bin/目录下,这样该可执行文件就可以直接使用,BLACKPINK不需要在前面加上路径就能运行。...总结概要 通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径下,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些输入文件或者命令行的入参

2.7K00

『Python』Python编译成计算机可执行文件(Windows计算机可执行文件exe,Linux 计算机可执行文件elf,Mac计算机可执行文件mach-O)

程序都是脚本的方式,一般是在解析器里运行,如果要想要给别的计算机使用,需要提前安装Python解析器和相关包才可以运行,为了在 Windows(或其它系统里) 里方便发布,我们将.py文件,编译成一个可执行文件...,并且打包所需要库文件,只需要点击一个可执行文件运行,而无需安装Python和相关库文件。...PyInstaller将 Python应用程序冻结(打包)在Windows,GNU / Linux,Mac OS X,FreeBSD,Solaris和AIX下的独立可执行文件中。...与类似工具相比,PyInstaller的主要优势在于PyInstaller可与Python 2.7和3.5-3.7一起使用;由于透明压缩,它可生成较小的可执行文件;它是完全多平台的;并且使用OS支持来加载动态库...-D,--onedir 产生一个目录(包含多个文件)作为可执行程序 -a,--ascii 不包含 Unicode 字符集支持 -d,--debug 产生 debug 版本的可执行文件 -w,--windowed

3.3K10

Manjaro Linux平台用pyinstaller打包python可执行文件

对于使用场景不是很复杂的,我们可以直接做成一个可执行文件,这样开发者只需要维护可执行文件的功能正常,以及对于各种平台的兼容性较好,这就可以了。...这里我们介绍如何使用pyinstaller去通过python源码构造一个可执行文件。...构造python测试实例 因为可执行文件的自身内容都是固定的,只能通过配置文件或者是命令行的输入参数来进行传参,因此我们构造python文件的时候主要从命令行的这个角度来出发,通过读取命令行的输入参数来决定...最常用的方法其实是直接将该可执行文件拷贝到/usr/bin/目录下,这样该可执行文件就可以直接使用,不需要在前面加上路径就能运行。...总结概要 通过pyinstaller我们可以将一个python项目打包编译构建成一个可执行文件,然后将该可执行文件放置到一个系统路径下,使得系统可以不需要路径也能够识别到这个可执行文件,这样我们就可以仅配置一些输入文件或者命令行的入参

2.9K20

可执行文件的组成

在 ADS 下,可执行文件有两种,一种是.axf 文件,带有调试信息,可供 AXD 调试工具使用.另一种是.bin 文件,可执行的二进制代码文件。我们重点是讲描.bin 文件的组成。...我们把可执行文件分为两种情况:分别为存放态和运行态。 1. 存放态 存放态是指可执行文件通过 fromelf 产生后,在存储介质(flash 或磁盘)上的分布....此时可执行文件一 般由两部分组成:分别是代码段和数据段。代码段又分为可执行代码段(.text)和只读数据段(.rodata), 数据段又分为初始化数据段(.data)和未初始化数据段(.bss)。...可执行文件的存放态如下: +————-+———– | .bss | +————-+– 数据段 | .data | +————-+———– | .rodata | | |...运行态 可执行文件通过装载过程, 搬入到 RAM 中运行, 这时候可执行文件就变成运行态。

59220

Linux可执行文件与进程的虚拟地址空间

Linux可执行文件与进程的虚拟地址空间 一个可执行文件被执行的同时也伴随着一个新的进程的创建。...Linux会为这个进程创建一个新的虚拟地址空间,然后会读取可执行文件的文件头,建立虚拟地址空间与可执行文件的映射关系,然后将CPU的指令指针寄存器设置成可执行文件的入口地址,然后CPU就会从这里取指令执行...Proc目录下的进程虚拟地址空间布局 Linux在装载可执行文件的时候,会将这些segment映射到进程的地址空间中。映射的时候,这里面的segment会对应一个VMA。...Linux将进程虚拟地址空间中的一个段叫做虚拟内存区域(VMA)。在/proc目录下,可以查看一个进程的虚拟地址空间,通过命令 cat /proc/pid/maps ?...可以使用命令 readelf -l name.elf来查看ELF的段。在ELF的程序头表,保存着segment的信息 ? 最下面是是段与节的归属关系: ?

4.1K30
领券