网站大量收购独家精品文档,联系QQ:2885784924

UNIXLinux操作系统编程-操作系统基本知识.ppt

  1. 1、本文档共138页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ls 命令的-a,-l选项;-m(以逗号分割);-F(文件,目录);--color(颜色) 进程是UNIX操作系统最基本的抽象之一。进程不仅仅局限于一段可执行程序代码,它通常还包括其他资源,例如用来存放全局变量的数据段、打开的文件、挂起的信号、一个或几个执行线程等。 进程提供两种虚拟机制:虚拟处理器和虚拟内存。虚拟处理器给进程一种假象,让这些进程觉得自己在独享处理器。而虚拟内存让进程在获取和使用内存时觉得自己拥有真个系统的所有内存资源。 思考:在用户态下运行的程序是否不会被抢占CPU? 命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。 * * 命令gcc首先调用cpp进行预处理,在预处理过程中,对源代码文件中的文件包含(include)、预编译语句(如宏定义define等)进行分析。接着调用cc1进行编译,这个阶段根据输入文件生成以.o为后缀的目标文件。汇编过程是针对汇编语言的步骤,调用as进行工作,一般来讲,.S为后缀的汇编语言源代码文件和汇编、.s为后缀的汇编语言文件经过预编译和汇编之后都生成以.o为后缀的目标文件。当所有的目标文件都生成之后,gcc就调用ld来完成最后的关键性工作,这个阶段就是连接。在连接阶段,所有的目标文件被安排在可执行程序中的恰当的位置,同时,该程序所调用到的库函数也从各自所在的档案库中连到合适的地方。 * * * * * * * * * * * * * * 胡锦涛要讲话 * * * * * * * * * 生成可调试的可执行程序 gcc -g mai.c 第一步加载可执行程序 gdb ./a.out 第二部设置断点 文件名和行号: b main.c:4 函数名称 b fib 第三步运行可执行程序 r 参数1 参数2 观察变量的值 p 变量的名字 程序一行一行的执行 n (不会进入函数) s (会进入函数) gdb概述 gdb是GNU计划开发的程序调试工具 gdb可以完成以下四个方面的功能: 启动程序,可以按照自定义的要求随心所欲的运行程序 可让被调试的程序在所指定的调置的断点处停住(断点可以是条件表达式) 当程序被停住时,可以检查此时程序中所发生的情况 动态的改变程序的执行环境。 gdb的启动 直接在shell中运行gdb命令,进入gdb界面后用 file program 装载程序。 在shell中启动gdb并加载可执行文件 gdb program 用gdb同时调试一个运行程序和core文件(core是程序非法执行后core dump后产生的文件) gdb program core 调试正在运行的进程 gdb program processid 进入gdb后用 attach processid 调试正在运行的进程。 gdb常用命令 help [command] 在gdb中查询command的用法,如果不加command,则列出gdb的命令分类。可以用 help 分类名查看此分类下所有的gdb命令 quit或者ctrl+d 退出gdb gdb常用命令:break 功能:断点设置命令break(缩写 b),当gdb执行到该断点时会让程序暂停运行。此时程序员可以查看运行中程序的情况。 格式:break [LOCATION] [thread THREADNUM] [if CONDITION] [LOCATION]: linenum(行号) function name(函数名) filename:linenum filename:function class:function(c++) b 123 b main b increase:main b increase:123 [thread THREADNUM] 调试多线程程序时,切换到哪个线程或者在那个线程中设置断点。 break frik.c:13 thread 28 [if CONDITION]: 当条件满足时,断点才生效。一般称为条件断点。 CONDITION

文档评论(0)

学习让人进步 + 关注
实名认证
内容提供者

活到老,学到老!知识无价!

1亿VIP精品文档

相关文档