Linux环境编程与调试课件

上传人:我*** 文档编号:144949373 上传时间:2020-09-14 格式:PPT 页数:24 大小:541KB
返回 下载 相关 举报
Linux环境编程与调试课件_第1页
第1页 / 共24页
Linux环境编程与调试课件_第2页
第2页 / 共24页
Linux环境编程与调试课件_第3页
第3页 / 共24页
Linux环境编程与调试课件_第4页
第4页 / 共24页
Linux环境编程与调试课件_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《Linux环境编程与调试课件》由会员分享,可在线阅读,更多相关《Linux环境编程与调试课件(24页珍藏版)》请在金锄头文库上搜索。

1、LINUX环境编程与调试经验总结,王公仆 2011.01.18,提纲,环境安装 常见发布版本的选择与安装(虚拟机,裸机,双系统) 文件共享服务samba与配置 SSH工具的安装与配置 环境编程 编辑工具: VI与SI (source insight) 编译工具: MAKEFILE与GCC 调试与工具 GDB调试方法 其他调试工具 其他相关知识 Shell命令 网络命令,发布版本选型与安装,红帽子系列包括RHEL/Fedora/CentOS. RHEL和CentOS的稳定性较好,适合于服务器,但是Fedora的稳定性较差,最好只用于桌面(RHEL收费). 通用选型原则: 一个桌面系统且既不想盗版

2、又不花钱也不想定制不想浪费配置时间ubuntu/kubuntu/xubuntu中选一款。 一个桌面系统,你还想定制自己系统,想跑得更欢,不介意在Linux系统安装方面浪费一点时间,那么你的唯一选择就是Gentoo. 一个服务器系统而且你厌烦配置,只是想要一个比较稳定的服务器系统,那么你最好的选择就是CentOS. 一个坚如磐石的非常稳定的服务器系统,那么你的唯一选择就是FreeBSD。 如果你需要一个稳定的服务器系统,而且想深入摸索一下Linux的各个方面的知识,想自己定制许多内容,那么我推荐你使用Gentoo。 总结 Gentoo适合用于定制桌面应用或服务器,都比较稳定; FreeBSD最稳

3、定的LINUX发布版本; CentOS配置简单的较稳定版本; RHEL收费有技术支持的稳定版本; FEDORA/UBUNTU系列用于桌面;,获取已安装系统的版本信息,获取发布版本信息:lsb_release a 获取内核版本信息:uname r 获取GCC相关信息:gcc v wanggphik $ lsb_release -a LSB Version: :core-3.1-ia32:core-3.1-noarch:graphics-3.1-ia32:graphics-3.1-noarch Distributor ID: RedHatEnterpriseServer Description:

4、Red Hat Enterprise Linux Server release 5.4 (Tikanga) Release: 5.4 Codename: Tikanga wanggphik $ gcc -v 使用内建 specs。 目标:i386-redhat-linux 配置为:./configure -prefix=/usr -mandir=/usr/share/man -infodir=/usr/share/info -enable-shared -enable-threads=posix -enable-checking=release -with-system-zlib -enabl

5、e-_cxa_atexit -disable-libunwind-exceptions -enable-libgcj-multifile -enable-languages=c,c+,objc,obj-c+,java,fortran,ada -enable-java-awt=gtk -disable-dssi -enable-plugin -with-java-home=/usr/lib/jvm/java-1.4.2-gcj-1.4.2.0/jre -with-cpu=generic -host=i386-redhat-linux 线程模型:posix gcc 版本 4.1.2 2008070

6、4 (Red Hat 4.1.2-46) wanggphik $ uname -r 2.6.18-164.el5PAE,Linux系统的安装配置,Windows机器上安装虚拟机方案: 前期准备:虚拟机软件vmware,系统安装镜像ISO软件包/光盘; 安装注意:预分配磁盘空间,尽量大于12G,勾选定制软件,将重要的make gcc,samba,vi,gdb,x服务等安装包一定要勾选上,建议只要不冲突尽量装全软件包,如果后期安装RPM包,方法是rpm ivh *.rpm 卸载安装包rpm e *.rpm,自己的开发环境建议不要安装防火墙和SElinux服务,以免每次都要再关闭造成开发不便;难点安

7、装RPM包时依赖关系很考验耐性。 在一台机器上安装windows/linux双系统: 前期准备:先安装Windows系统,再用光盘安装linux系统; 注意事项:注意分区和文件系统的选择,可参考安装双系统文档操作; 在裸机上安装linux系统: 光盘安装,勾选所有软件细节里提供的软件包,注意依赖关系的处理.,文件共享服务SAMBA的安装与配置,确认软件是否安装 roothik wanggp# rpm -qa |grep samba samba-common-3.0.33-3.14.el5 samba-3.0.33-3.14.el5 system-config-samba-1.2.41-5.el

8、5 samba-client-3.0.33-3.14.el5 安装软件 注意安装顺序,参考网上指导文档; 配置用户 #useradd wanggp #passwd wanggp #smbpasswd -a wanggp 注意事项 Windows机器和linux所在机器互相首先要能ping通对方(即是要求两边的防火墙要关闭); 关闭linux一侧的SElinux服务方法 ./enforce 0 如有特殊需要可配置smb.conf配置文件(参考网络资料),SSH工具的安装,SecureCRT的安装注意事项: 需要将SecureCRT-kg.exe拷贝到安装目录,然后patch一次(拷贝Secure

9、CRT.exe后缀名被改动注意); 输入用户名和公司名运行SecureCRT-kg.exe的generate按钮生成认证信息; 运行SecureCRT,复制填写相关认证信息; SecureCRT的配置: 中文显示:参考我的一篇博客: 最大行数:32000,可以显示尽可能多的打印信息; 显示界面:修改配置session options选项里面的参数; SecureCRT的其他功能: 文件传输 telnet 串口调试等(请查阅相关资料),环境编程VI工具,vi文本编辑器 cat 命令 more 命令 tail命令 tail f x.log Vi更多信息参考附件,环境编程工具 source insi

10、ght,项目工程编辑软件:source insight 创建一个source insight工程 删除一个source insight工程 搜索关键字 高亮显示 ctrl+f8 定位到特定行 ctrl+g 目录结构 参数配置,编译链接加载静态库动态库,链接是将不同部分的代码和数据手机并组合成为一个单一文件的过程,这个文件可被加载到存储器并执行。链接器使得分离编译成为可能,一个大型的应用程序可通过分解为更小更好管理的模块,以便于修改和维护;链接器可以在编译时由静态链接器来完成,也可以在加载时或运行时由动态连接器来完成,链接器处理被称为目标文件的二进制文件,它有两种不同的形式:可重定位并可执行的,

11、与共享的,前者是静态链接器组合多个文件为一个可执行的目标文件并可加载到存储器中执行,共享库是运行时由动态链接器链接和加载的,或隐含地在调用程序被加载或开始执行时,或根据需要在程序调用dlopen库的函数时。连接器的两个主要任务是符号解析和重定位,符号解析的目的是将每个符号引用与一个符号定义联系起来,编译器和汇编器生成从地址0开始的代码和数据节,链接器通过把每个符号定义与一个存储器位置联系起来,然后修改所有对这些符号的引用,使得他们指向这个存储器位置,从而重定位这些字节。目标文件纯粹是字节快的集合,这些快中有些包含程序代码有些包含程序数据而其他的则包含指导链接器和加载器的数据结构,链接器将这些块

12、连接起来,确定被链接块的运行时位置,并且修改代码和数据块中的各种位置,链接器对目标机器知之甚少,编译器和汇编器已经完成了大部份工作。 链接器报错类型有缺少模块,缺少库,库的版本不匹配不兼容等; unix链接器解析符号引用时所做的决定可以不动神色的影响你程序的正确性; 主要指令:ldd r x.so ;nm *.so ;grep x,GCC与MAKEFILE,Makefile #sample Makefile edit : main.o kbd.o command.o display.o insert.o search.o files.o utils.o cc -o edit main.o kb

13、d.o command.o display.o insert.o search.o files.o utils.o main.o : main.c defs.h cc -c main.c kbd.o : kbd.c defs.h command.h cc -c kbd.c command.o : command.c defs.h command.h cc -c command.c display.o : display.c defs.h buffer.h cc -c display.c insert.o : insert.c defs.h buffer.h cc -c insert.c sea

14、rch.o : search.c defs.h buffer.h cc -c search.c files.o : files.c defs.h buffer.h command.h cc -c files.c utils.o : utils.c defs.h cc -c utils.c clean : rm edit main.o kbd.o command.o display.o insert.o search.o files.o utils.o,GDB调试命令,GDB是一个源码级调试工具,提供在代码和机器语言级别对应用程序进行调试的能力。 同时还支持:对正在运行的程序进行调试,以及对应用

15、程序事后剖析调试。支持多线程多进程调试; #gcc g testapp.c o testapp /-g告诉编译器在映像中包括调试信息,gdb可根据这些信息来理解变量类型以及机器指令与源码间的映射关系,另外需要注意如果对开启了优化编译的映像进行调试,看到的结果可能很古怪,优化器可能移动了代码的位置甚至溢出了整句的代码,虽然gdb支持对优化之后的代码进行调试,但调试未优化之前的代码轻松得多。 图形界面的GDB调试工具和命令行的调试工具 Gdb的使用: #gdb ./testapp /gdb下运行程序 (gdb)break main /加断点 (gdb)run /r /运行 (gdb)step /s

16、 /单步执行 (gdb)cont(inue) /c /运行至下一断点 (gdb)next /n /下一步注意与step区别 (gdb)list /l /列出源码上下文 (gdb)print x /p x /打印变量x值 (gdb) info breakpoints /列出所有断点 gdb ./testapp core.2455 /运行崩溃后产生的core文件 (gdb)bt /查看堆栈 (gdb)frame 0 /查看崩溃线程的第一断层 (gdb)info threads /所有线程信息 (gdb)thread apply all bt /对所有线程查看堆栈切片 (gdb)thread 1 /切换到线程1,其他调试工具,valgrind:valgrind -tool=memcheck ./test electric Fence :安装:sudo apt-get install electric-fence $gcc o test test.c lefence yamd: yamd-gcc te

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号