- 1、本文档共38页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Linux教程(第3版)[孟庆昌][电子教案]-第6章
第6章 常用开发工具 主要内容 gcc编译系统的概念和使用 gdb程序调试工具的概念和使用 程序维护工具make 的概念和使用 6.1 gcc编译系统6.1.1 文件名后缀 6.1.2 C语言编译过程 1.预处理阶段 预处理是常规编译 之前预先进行的工作, 故此得名。它读取C语言 源文件,对其中以“#” 开头的指令(伪指令) 和特殊符号进行处理。 主要包括文件包含、宏 定义和条件编译指令。 2.编译阶段 编译程序(Compiler)对预处理之后的输出文件进行词法分析和语法分析,试图找出所有不符合语法规则的部分 3.汇编过程 汇编过程是汇编程序(Assembler)把汇编语言代码翻译成目标机器代码的过程 4.连接阶段 连接程序(Linker)要解决外部符号访问地址问题 连接模式分为静态连接和动态连接 6.1.3 gcc命令行选项 在Linux系统中,C/C++程序编译命令是gcc,例如: $ gcc f1.c f2.c (针对C语言源程序) 执行完成后,生成默认的可执行文件a.out。 1.预处理选项 C语言预处理程序通常称为cpp,它是宏处理程序,由C编译程序自动调用,在真正的编译过程之前对程序进行转换。 ●几个预处理常用选项: -C -D name -D name=definition -U name -I dir -o file -E Linux下库文件的命名有一个约定,所有的库名都以lib开头。形如: libx.a 其中,x是指定的库名 以.a(归档,archive)结尾的库是静态库,以.so(共享目标,shared object)结尾的库是动态库 生成静态库的方法实际上可分为两步: ① 将各函数的源文件编译成目标文件 ② 使用ar工具将目标文件收集起来,放到一个归档文件中 6.2 gdb程序调试工具 程序中的错误可按性质分为三种: (1)编译错误,即语法错误。 (2)运行错误。 (3)逻辑错误。 查找程序中的错误,诊断其准确位置,并予以改正,这就是程序调试。 程序调试分为人工查错与机器调试。 6.2.1 启动gdb和查看内部命令 当程序执行过程中忽然中止,屏幕上显示××××-core dumped消息,然后显示提示符,其中,××××表示出错原因 为了发挥gdb的全部功能,需要在编译源程序时使用-g选项 。如: $ gcc -g prog.c -o prog (针对C语言源程序prog.c) $ gcc -g program.cpp -o program (针对C++源程序program.cpp) 启动gdb的方法有以下几种: (1)直接使用shell命令gdb (2)以一个可执行程序作为gdb的参数 (3)同时以可执行程序和core文件作为gdb的参数 (4)指定一个进程号PID作为gdb的第二个参数 一旦启动gdb,就显示gdb提示符: (gdb) 并等待用户输入相应的内部命令 6.2.2 显示源程序和数据 1.显示和搜索源程序 (1)显示源文件 利用list命令可以显示源文件中指定的函数或代码行 list list - list [file:] num list start , end list [file:]function (2)模式搜索 forward-search regexp search regexp reverse-search regexp 2.查看运行时数据 (1)print命令 一般使用格式是 :print [/fmt] exp 当被调试的程序停止时,可以用print命令(简写为p)或同义命令inspect来查看当前程序中运行的数据。 (2)gdb所支持的运算符 ① 用运算符取出变量在内存中的地址。 如print i , print array[i] ② { type }adrexp 表示一个数据类型为type、存放地址为adrexp的数据。 ③ @ 它是一个与数组有关的双目运算符 ④ file :: var 或者 function :: var 表示文件file(或函数function)中变量var的值。 (3)输出格式 在print
您可能关注的文档
- 防溺水安全教育主题班会PPT课件2.ppt
- 聚类分析—K-means and K-medoids聚类.ppt
- 借款费用案例ppt.ppt
- 开题报告(终板)一德大学生宿舍楼设计.doc
- 江苏省机关第五届“万人学法”竞赛题库.doc
- 利用excel设计制作调查问卷.doc
- 柳立国被控生产、销售有毒、有害食品罪和生产、销售伪劣产品罪案二审辩护词.doc
- 路政执法考试试题.doc
- 贸易实务案例及详细分析.ppt
- 目 录施工雨季.doc
- 综合性学习:天下国家(分层作业)(解析版).docx
- 2024-2025学年高中信息技术人教中图版(2019)选修4教学设计合集.docx
- 2024-2025学年高中信息技术人教中图版(2019)选修3教学设计合集.docx
- 名著导读:《海底两万里》快速阅读分层作业附解析.pdf
- 名著导读:《海底两万里》快速阅读分层作业原卷.pdf
- 2024-2025学年高中信息技术人教中图版(2019)选修6教学设计合集.docx
- 名著导读:《骆驼祥子》圈点与批注(分层作业)原卷.pdf
- 飞机维修工程吕晓静82课件.ppt
- 有关清明节演讲稿范文(32篇).docx
- 2024-2025学年高中物理鲁科版(2019)必修 第三册教学设计合集.docx
最近下载
- 年产8万吨聚甲醛工艺的初步设计.docx
- 3D3S 基本操作手册.pdf
- 2019新疆生产建设兵团中考化学真题.doc VIP
- 8.铁路工程预算定额 路基工程宣贯讲义.ppt
- 房地产市场报告 -天朗2024年报【在时代洪流的弄潮中 尽显从容-把脉逆周期调解下大的北京房地产市场】.docx
- 【人教部编版】二年级上册语文课件:4《田家四季歌》第一课时(共27张PPT).pptx
- 年产25万吨合成氨合成工段工艺设计.docx
- 2023徐州市八年级下册期末物理试卷含答案 .pdf
- 毕业设计(论文)-反铲式挖掘机工作装置结构设计.doc
- 工程训练(广东工业大学)智慧树知到期末考试答案章节答案2024年广东工业大学.docx
文档评论(0)