文件linux查看进程

linux查看进程  时间:2021-02-26  阅读:()

Linux操作系统分析主讲:陈香兰助教:贾永泉、毛熠璐xlanchen@ustc.
edu.
cn3606864-83(西区电三421)Autumn2007"工欲善其事,必先利其器"--《论语》相关工具介绍开发工具分析工具GNUTools简介GNUtoolsGNUtools和其他一些优秀的开源软件可以完全覆盖上述类型的软件开发工具.
为了更好的开发嵌入式系统,需要熟悉如下一些软件GCCBinutils—辅助GCC的主要软件Gdbmakecvs一、GCC很多人认为GCC只是一个C编译器,其实GCC=GNUCompilerCollection目前,GCC可以支持多种高级语言,如C、C++ADAObjectCJAVAFortranPASCALGCC下的工具cpp—预处理器GNUC编译器在编译前自动使用cpp对用户程序进行预处理gcc—符合ISO等标准的C编译器g++—基本符合ISO标准的C++编译器gcj—GCC的java前端gnat—GCC的GNUADA95前端GNUTools—gccgcc是一个强大的工具集合,它包含了预处理器、编译器、汇编器、链接器等组件.
它会在需要的时候调用其他组件.
输入文件的类型和传递给gcc的参数决定了gcc调用具体的哪些组件.
对于开发者,它提供的足够多的参数,可以让开发者全面控制代码的生成,这对嵌入式系统级的软件开发非常重要gcc使用举例(1)源程序gcc使用举例(2)编译和运行编译运行gcc的工作过程(1)如果使用-v选项,则可以看到许多被隐藏的信息gcc的编译过程一般情况下,c程序的编译过程为1、预处理2、编译成汇编代码3、汇编成目标代码4、链接1、预处理预处理:使用-E参数输出文件的后缀为".
cpp"gcc–E–ogcctest.
cppgcctest.
c使用wc命令比较预处理后的文件与源文件,可以看到两个文件的差异行数单词数字节数预编译预处理文件汇编代码1)使用-x参数说明根据指定的步骤进行工作,cpp-output指明从预处理得到的文件开始编译2)使用-S说明生成汇编代码后停止工作gcc–xcpp-output–S–ogcctest.
sgcctest.
cpp也可以直接编译到汇编代码gcc–Sgcctest.
c2、编译成汇编代码预处理文件汇编代码直接编译到汇编代码3、编译成目标代码汇编代码目标代码gcc–xassembler–cgcctest.
s直接编译成目标代码gcc–cgcctest.
c使用汇编器生成目标代码as–ogcctest.
ogcctest.
s汇编代码目标代码直接编译成目标代码使用汇编器4、编译成执行代码目标代码执行代码gcc–ogcctestgcctest.
o直接生成执行代码gcc–ogcctestgcctest.
c目标代码执行代码直接生成执行代码gcc的高级选项-Wall:打开所有的警告信息根据警告信息检查源程序Main函数的返回值为int在函数的末尾应当返回一个值修改源程序优化编译优化编译选项有:-O0缺省情况,不优化-O1-O2-O3等等不同程度的优化gcc的优化编译举例(1)考虑如下的源代码不同的优化编译选项gcc的优化编译举例(2)使用time命令统计程序的运行二、GNUbinutilsbinutils是一组二进制工具程序集,是辅助GCC的主要软件,它主要包括addr2line把程序地址转换为文件名和行号.
在命令行中给它一个地址和一个可执行文件名,它就会使用这个可执行文件的调试信息指出在给出的地址上是哪个文件以及行号.
ar建立、修改、提取归档文件.
归档文件是包含多个文件内容的一个大文件,其结构保证了可以恢复原始文件内容.
as是GNU汇编器,主要用来编译GNUC编译器gcc输出的汇编文件,他将汇编代码转换成二进制代码,并存放到一个object文件中,该目标文件将由连接器ld连接C++filt解码C++符号名,连接器使用它来过滤C++和Java符号,防止重载函数冲突.
gprof显示程序调用段的各种数据.
ld是连接器,它把一些目标和归档文件结合在一起,重定位数据,并链接符号引用,最终形成一个可执行文件.
通常,建立一个新编译程序的最后一步就是调用ld.
nm列出目标文件中的符号.
objcopy把一种目标文件中的内容复制到另一种类型的目标文件中.
objdump显示一个或者更多目标文件的信息.
使用选项来控制其显示的信息.
它所显示的信息通常只有编写编译工具的人才感兴趣.
ranlib产生归档文件索引,并将其保存到这个归档文件中.
在索引中列出了归档文件各成员所定义的可重分配目标文件.
readelf显示ebf格式可执行文件的信息.
size列出目标文件每一段的大小以及总体的大小.
默认情况下,对于每个目标文件或者一个归档文件中的每个模块只产生一行输出.
strings打印某个文件的可打印字符串,这些字符串最少4个字符长,也可以使用选项-n设置字符串的最小长度.
默认情况下,它只打印目标文件初始化和可加载段中的可打印字符;对于其它类型的文件它打印整个文件的可打印字符,这个程序对于了解非文本文件的内容很有帮助.
strip丢弃目标文件中的全部或者特定符号.
libiberty包含许多GNU程序都会用到的函数,这些程序有:getopt,obstack,strerror,strtol和strtoul.
libbfd二进制文件描述库.
libopcodes用来处理opcodes的库,在生成一些应用程序的时候也会用到它,比如objdump.
Opcodes是文本格式可读的处理器操作指令.
binutils开发工具使用举例arnmObjcopyObjdumpreadelf1、arar用于建立、修改、提取归档文件(archive),一个归档文件,是包含多个被包含文件的单个文件(也可以认为归档文件是一个库文件).
被包含的原始文件的内容、权限、时间戳、所有者等属性都保存在归档文件中,并且在提取之后可以还原使用ar建立库文件(1)源程序add.
c和minus.
c使用ar建立库文件(2)编译成目标文件将库文件拷贝到/usr/lib目录下Ar的rv参数的说明:r:将多个文件组成一个文件v:输出信息建立库文件库文件使用举例在代码中使用Add和Minus函数在编译时指定库文件指明将libtest.
a链接进来运行结果2、nmnm的主要功能是列出目标文件中的符号,这样程序员就可以定位和分析执行程序和目标文件中的符号信息和它的属性nm显示的符号类型A:符号的值是绝对值,并且不会被将来的链接所改变B:符号位于未初始化数据部分(BSS段)C:符号是公共的.
公共符号是未初始化的数据.
在链接时,多个公共符号可能以相同的名字出现.
如果符号在其他地方被定义,则该文件中的这个符号会被当作引用来处理D:符号位于已初始化的数据部分T:符号位于代码部分U:符号未被定义:符号类型未知,或者目标文件格式特殊nm使用举例如果对test可执行文件使用nm,会有什么结果呢(作业)3、objcopy可以将一种格式的目标文件内容进行转换,并输出为另一种格式的目标文件.
它使用GNUBFD(binaryformatdescription)库读/写目标文件,通过这个BFD库,objcopy能以一种不同于源目标文件的格式生成新的目标文件$objcopy-h在makefile里面用-Obinary选项来生成原始的二进制文件,即通常说的image文件Objcopy使用举例使用file命令查看文件类型生成srec格式的目标文件使用file命令查看新文件的类型文件格式a.
out:assemblerandlinkeditoroutput汇编器和链接编辑器的输出coffcommonobjectfileformat一种通用的对象文件格式ELFexcutivelinkedfileLinux系统所采用的一种通用文件格式,支持动态连接.
ELF格式可以比COFF格式包含更多的调试信息文件格式Flatelf格式有很大的文件头,flat文件对文件头和一些段信息做了简化uClinux系统使用flat可执行文件格式SRECMOTOROLAS-Recoder格式(S记录格式文件)等等4、objdump显示一个或多个目标文件的信息,由其选项来控制显示哪些信息.
一般来说,objdump只对那些要编写编译工具的程序员有帮助,但是我们通过这个工具可以方便的查看执行文件或者库文件的信息Objdump使用举例(1)-f选项:显示文件头中的内容Objdump使用举例(2)-d选项进行反汇编5、readelfreadelf:显示一个或多个ELF格式的目标文件信息.
Readelf使用举例三、其他GNU工具Gdb—调试器GNUmake--软件工程工具diff,patch--补丁工具CVS--版本控制系统1、GNUToolchain—gdbGdb=GNUdebugerGNUtools中的调试器,功能强大设置断点监视、修改变量单步执行显示/修改寄存器的值堆栈查看远程调试gdb使用举例源代码如下编译:gcc–obugbug.
c编译并运行编译使用gdb调试bug运行bug输入字符串hello显示出错位置能不能看到源代码呢使用gcc的-g参数gcc–g–obugbug.
c重新调试列出源代码怎么修改前面的源代码呢设置断点2、使用GNUmake管理项目GNUmake是一种代码维护工具,在使用GNU编译器开发大型应用时,往往要使用make管理项目.
如果不使用make管理项目,就必须重复使用多个复杂的命令行维护项目和生成目标代码.
Make通过将命令行保存到makefile中简化了编译工作.
Make的主要任务是根据makefile中定义的规则和步骤,根据各个模块的更新情况,自动完成整个软件项目的维护和代码生成工作.

CYUN(29元/月)美国、香港、台湾、日本、韩国CN2,续费原价

关于CYUN商家在之前有介绍过一次,CYUN是香港蓝米数据有限公司旗下的云计算服务品牌,和蓝米云、蓝米主机等同属该公司。商家主要是为个人开发者用户、中小型、大型企业用户提供一站式核心网络云端部署服务,促使用户云端部署化简为零,轻松快捷运用云计算。目前,CYUN主要运营美国、香港、台湾、日本、韩国CN2线路产品,包括云服务器、站群服务器和独立服务器等。这次看到CYUN夏季优惠活动发布了,依然是熟悉的...

香港服务器促销:香港华为云混合服务器、高防服务器首月半价,普通110M大带宽服务器月付799,付5用6,付10用13

博鳌云是一家以海外互联网基础业务为主的高新技术企业,运营全球高品质数据中心业务。自2008年开始为用户提供服务,距今11年,在国人商家中来说非常老牌。致力于为中国用户提供域名注册(国外接口)、免费虚拟主机、香港虚拟主机、VPS云主机和香港、台湾、马来西亚等地服务器租用服务,各类网络应用解決方案等领域的专业网络数据服务。商家支持支付宝、微信、银行转账等付款方式。目前香港有一款特价独立服务器正在促销,...

hostyun评测香港原生IPVPS

hostyun新上了香港cloudie机房的香港原生IP的VPS,写的是默认接入200Mbps带宽(共享),基于KVM虚拟,纯SSD RAID10,三网直连,混合超售的CN2网络,商家对VPS的I/O有大致100MB/S的限制。由于是原生香港IP,所以这个VPS还是有一定的看头的,这里给大家弄个测评,数据仅供参考!9折优惠码:hostyun,循环优惠内存CPUSSD流量带宽价格购买1G1核10G3...

linux查看进程为你推荐
外网和内网内网和外网是什么意思啊??安装程序配置服务器失败SQL安装程序配置服务器失败安装程序配置服务器失败安装用友T3出现安装程序配置服务器失败是怎么回事云播怎么看片云播影视怎么样?打开网页出现错误网页出现错误怎么解决?要最简单的那种如何建立自己的网站怎么创建自己的网站xv播放器下载除了迅雷看看播放器还有什么播放器支持xv格式的视频?数据库损坏数据库坏了怎么办雅虎天盾雅虎天盾、瑞星杀毒软件、瑞星防火墙、卡卡上网安全助手能同时使用吗?人人逛街人人逛街评论怎么不显示链接了?好像4月28日就不能显示了。是什么原因呢?
个人注册域名 大庆服务器租用 vps优惠码cnyvps 新网域名解析 中国域名网 已备案域名出售 亚洲大于500m 圣迭戈 wdcp 轻博客 12u机柜尺寸 云图标 韩国网名大全 ibox官网 好看qq空间 gg广告 河南移动邮件系统 免费美国空间 vip购优惠 爱奇艺vip免费领取 更多