- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
lect08Linux下C语言编程简介
Linux下C程序开发过程 使用Vi等编辑工具编写源程序 保存为*.c文件 使用gcc编译成二进制可执行文件 执行./a.out 有问题可使用gdb进行调试 问题: 能否把DOS下的应用程序移到Linux下? 一个C程序的例子 : 编译执行: $ gcc hello.c $ ./a.outhello world GCC编译器的介绍 GCC的使用 例如: $ gcc hello.c $ ./a.outhello world $ gcc -o hello hello.c $ ./ hello hello world GCC的常用参数 -o file:编译器将输入的文件进行编译和链接,产生一个名为file的可执行文件(file为指定的文件名)。 -c:编译器将输入的文件处理到组译的阶段就停止,并不做链接,完成后会输出一个与源文件名相符的目标文件,扩展名改为.o。 -O2:在编译的过程中会较-O参数花费更多的时间执行最优化,但是所产生的程序执行起来会更有效率,执行速度更快。 -g:使编译器在执行编译时,将调试信息加入到目标文件中。这样,gdb调试器就可以根据这些信息追踪程序执行的状态。 gdb调试工具 gdb可以在执行程序时,指定各种条件的中断点、查看变量值及一步一步跟踪程序执行的过程。 以下通过一个exm1程序介绍如何用gdb来调试程序 gdb调试工具 启动调试工具(gdb)与结束调试工具的运行 $ gdb exm1GNU gdb Red Hat Linux (5.2.1-4)Copyright 2002 Free Software foundation,Inc.……(gdb) (gdb) quit 退出gdb,回到shell提示符下。 gdb调试工具 如果执行gdb命令时不想出现版权说明,就在执行时加上-q参数。 $ gdb 可以直接启动gdb,如果想再加载文件,可以使用命令: file 文件名 gdb调试工具 基本操作命令 list命令用来列出可执行文件的程序代码,它会在列出的程序代码左边加上行号。 (gdb)list:默认一次列出10行的内容 。 list 起始行号,结束行号 :列出指定行号间的内容。(gdb)list 3,7 执行程序 (gdb)runStarting program:/home/sally/diwuzhang/exm1Please input a value: 7 The result is 28Program exited with code 021.(gdb) gdb调试工具 设置断点 以行号设置断点 (gdb)break 8Breakpoint 1 at 0x8048373:file exm1.c,line 8.(gdb) (gdb)runStarting prongram:/home/zhou/exm1 please input a value 7 Breakpoint 1 main() at exm1.c:88 result=result+1; (gdb)_ gdb调试工具 查看变量的值和类型 print:可以列出程序执行到此时的某项变量的值。 例: (gdb)print i $1 = 1 (gdb)_ gdb调试工具 程序的流程控制 continue:直接向下执行。 step:执行下一行源代码。 next:执行下一行源代码。 step和next的区别:step:若遇到的下一行为函数调用,则会进入到函数内部执行函数的第一行。 next:若遇到的下一行为函数调用,将直接执行该函数调用。 gdb调试工具 管理中断点 info breakpoints:查看当前所有断点及它们的状态。 Num Type Disp Enb Address What1 breakpoint keep y 0in main at exm1.c:8 Num字段:中断的编号。 Type字段:表示断点的类型,Breakpoint表示是普通断点;Watchpoint如果针对某个变量或者表达式指定一个观察点,那么当它们的值被读/写的时候,gdb会停止程序的执行; CatchPoint捕捉点也是一类特殊的断点,它可以使得程序在某种事件发生时停止运行,例如c++异常,或者加载动态库、创建子进程等。设置捕捉点的命令是catch。 Disp字段:包含了keep、dis和del三个状态,keep表示断点一直有效;dis表示断点在生效一次就失去效用。 Enb字段:表示是否启用该断点,y表
您可能关注的文档
最近下载
- 对光伏发电项目的合理化建议.docx VIP
- 工程管理导论课件P1038.pptx
- 大学军事理论课教程第四章现代战争第三节 机械化战争.ppt
- ppt8 曹一鸣——面向核心素养发展的评学教一体化研究.pdf VIP
- 【百家讲坛】大隋风云下部(十三)朝廷五贵.docx VIP
- 中国特色社会主义理论体系形成发展过程课件.pptx VIP
- 2025年度临港新片区文员招聘43人笔试模拟试题及答案解析.docx VIP
- 人教部编版四年级上语文5《一个豆荚里的五粒豆》优秀课堂PPT教学课件.pptx VIP
- 个人简历表格空白word.doc VIP
- 全新版大学高阶英语:综合教程 第4册 U6习题答案.docx VIP
有哪些信誉好的足球投注网站
文档评论(0)