Presentation is loading. Please wait.

Presentation is loading. Please wait.

Linux环境高级编程实验.

Similar presentations


Presentation on theme: "Linux环境高级编程实验."— Presentation transcript:

1 Linux环境高级编程实验

2 实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用

3 实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用 googletest的使用 valgrind的使用

4 基本环境搭建 网络环境配置 APT工具使用 SecureCRT配置

5 网络环境配置---NAT方式 虚拟机菜单:VM----Settings… 选择Hardware标签,选择Network Adapter,选择NAT

6 网络环境配置 由于是复制虚拟机,可能出现下列情况

7 网络环境配置

8 网络环境配置 修改/etc/network/interfaces文件 文件内容:
auto eth1 假设当前网卡名称是eth1,从dmesg | grep eth 命令中获知的 iface eth1 inet static address netmask gateway

9 网络配置 接下来需要确定虚拟机的IP地址是多少。
虚拟机菜单:Edit----Virtual Network Editor 选择NAT标签

10 网络配置 添加DNS: 在/etc/resolv.conf中添加 nameserver 202.112.14.151 或

11 主机名配置 访问/etc/hostname文件 将主机名设为你的姓名拼音------以此杜绝抄袭实验报告 重启操作系统 #reboot

12 网络配置 重新启动网络: 检查网络: #/etc/init.d/networking restart
#ping

13 加入学校APT源 APT从预选设置好的软件源下载软件包 学校提供了高速的软件下载源
在/etc/apt/sources.list开头处加入学校提供的软件源 VMWare中的已经有快照 执行更新 #apt-get update

14 APT工具 Linux操作系统上安装软件,非常复杂 APT工具 软件之间非常复杂的依赖关系 复杂的配置、编译、安装过程
安装时自动维护软件之间的依赖关系 自动的配置、编译、安装过程

15 Cache存放:软件元数据,如名称,依赖关系
APT工具 APT源服务器 存放:各种软件源码、软件名称、依赖关系 我们的机器 Cache存放:软件元数据,如名称,依赖关系

16 APT工具 修改apt源,即添加APT服务器地址 检索软件信息 /etc/apt/sources.list
#apt-get update 使修改生效 检索软件信息 #apt-cache pkgnames 显示所有可以安装的软件 #apt-cache pkgnames | grep g++ #apt-cache policy 软件名称 查看该软件是否安装

17 APT工具 安装 重新安装 卸载 清理 #apt-get install 名称
#apt-get install --reinstall 名称 卸载 #apt-get remove 名称 清理 #apt-get clean 清楚deb包

18 APT工具 获取源码包 构建编译环境 编译源码包 安装 #apt-get source 名称 下载并在当前目录下解压
#apt-get build-dep 名称 安装关联的软件包 编译源码包 #dpkg-buildpackage 生成可执行文件和deb 安装 #dpkg –I *.deb

19 SecureCRT配置 安装openssh 检查结果 使用SecureCRT连接
#apt-get install openssh-server 检查结果 #ps –ef | grep ssh 若未找到, #/etc/init.d/ssh restart 使用SecureCRT连接

20 文件传输 #apt-get install lrzsz #rz 向Linux服务发送文件 #sz 文件名 Linux服务器向客户端发送文件

21 编程环境 #apt-get install build-essential

22 压缩工具 #apt-get install zip

23 实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用 googletest的使用 valgrind的使用

24 vi的使用(示例) 进入vi #vi [filename] (示例) vi的三种工作模式 指令行模式 文本输入模式 行末模式

25 vi的三种工作模式(示例) Command Mode Insert Mode Last Line Mode 键入Esc 输入i、a或o
输入冒号 Insert Mode Last Line Mode

26 vi的基本使用(示例) 查找字符串(指令模式下) 替换字符串(行末模式下) /字符串 查找下一个:n 查找上一个:N
:n1,n2s/word1/word2/gc 在[n1,n2]行之间,用word2替换word1,c用于询问是否要替换 可用$代表最后一行

27 vi的基本使用(示例) 删除操作(指令模式下) 复制操作(指令模式下) 粘贴操作(指令模式下) 恢复操作(指令模式下) dd:删除光标所在行
ndd:删除光标所在的向下n行 d1G:删除光标所在行到第一行 dG:删除光标所在行到最后一行 复制操作(指令模式下) 将上述dd,替换为yy 粘贴操作(指令模式下) p:复制的数据在光标的上一行粘贴 恢复操作(指令模式下) u

28 vi的基本使用(示例) 行末模式下 :q 退出vi :q! 强制退出vi :w 保存 :w filename 另存为 :wq 保存退出
:! Command 执行操作系统的命令,ls等 :set nu 显示行号

29 vi的基本使用(示例) 到指定行 打开多个文件 G:到文件尾 nG:到第n行 :n:到第n行 :split 文件名:水平分割
:vsplit 文件名:纵向分割 :quitall:关闭所有窗口

30 vi的基本使用(示例) 区域操作 在指令行模式下,按下v,移动光标,选中区域;可以再按下v,取消选择 复制该区域:y 粘贴该区域:p
删除该区域:d 剪切该区域:x

31 vi插件 需要安装的插件 exuberant-ctags (使用apt) cscope (使用apt) taglist
omnicppcomplete a winmanager minibufExplorer grep

32 Vi插件 安装说明 Ctags,cscope使用apt安装 其他的需要下载,解压到~/.vim即可 分析.vimrc文件(示例)

33 实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用 googletest的使用 valgrind的使用

34 make的使用 进行实际程序开发时,由于涉及到众多的源文件、头文件、依赖库等等,因此,编译指令可能会很长 每次书写浪费时间,效率过低
解决方案: 使用make工具,进行编译操作

35 实验一 编程环境实验 基本环境搭建 高级vi的使用 make的使用 gdb的使用 googletest的使用 valgrind的使用

36 gdb的使用 进入gdb(使用apt安装gdb) 查看当前文件 设置断点 使用-g选项编译,加入调试信息 #gdb 要调试的可执行文件名
>list >list 文件名:行号 设置断点 >break 行号

37 gdb的使用 清除断点 运行调试 查看变量值 >clear 行号 >run >continue
>display 表达式

38 gdb的使用 监控表达式的值 执行下一语句 查看汇编代码 >watch 表达式 >step >next
>disass

39 gdb的使用 查看寄存器 查看内存区域 >info registers >x /10xb 地址/产生地址的表达式
以16进制查看大小为10字节的内存区域

40 gdb调试多进程 多开一个终端,以监控子进程 子进程中,进入实际代码前,加上sleep(60),以方便获取子进程ID
在新开的终端中,在进程的工作目录内,运行 #gdb (gdb) attach 子进程ID (gdb) break 行号 (gdb) continue

41 gdb调试多线程 同时只能调试一个线程 查看当前线程 线程间切换 当调试一个线程时,其他线程都不运行 注意,当在线程间切换时,打好返回的断点
info thread 线程间切换 thread 线程ID(gdb分配的id) 当调试一个线程时,其他线程都不运行 set scheduler-locking on run之后才能输入该命令 注意可能要用continue 注意,当在线程间切换时,打好返回的断点


Download ppt "Linux环境高级编程实验."

Similar presentations


Ads by Google