- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
实验二 命令解释程序的使用
一、实验目的
掌握UNIX或LINUX环境下命令解释程序的使用
能对编写简单的C程序,进行编译运行和调试。
二、实验内容
输入LINUX相关命令后记录系统输出
简单的C程序,进行编译运行和调试
三、实验步骤
1 命令操作
浏览目录和文件的各种属性 ls –l、
显示文件内容 cat、more、
改变文件和目录的权限chmod、
显示当前目录 pwd、
文字统计 wc、
查看时间命令 date 、time、
帮助命令 help、
查看与删除进程命令ps, kill、
查看在线用户 who、
2 GNU gcc
GCC 是GNU提供的C 和C++ 编译器。实际上,GCC 能够编译三种语言:C、C++ 和Object C(C 语言的一种面向对象扩展)。利用gcc命令可同时编译并连接C 和C++ 源程序。如果你有两个或少数几个C 源文件,也可以方便地利用GCC 编译、连接并生成可执行文件。gcc 命令的基本用法如下:
gcc [options] [filenames]
gcc的主要选项:
-ansi 只支持ANSI 标准的C 语法。这一选项将禁止GNU C 的某些特色,例如asm 或typeof 关键词。
-c 只编译并生成目标文件。
-DMACRO 以字符串“1”定义MACRO 宏。
-DMACRO=DEFN 以字符串“DEFN”定义MACRO 宏。
-E 只运行C 预编译器。
-g 生成调试信息。GNU 调试器可利用该信息。
-IDIRECTORY 指定额外的头文件搜索路径DIRECTORY。
-LDIRECTORY 指定额外的函数库搜索路径DIRECTORY。
-lLIBRARY 连接时搜索指定的函数库LIBRARY。
-m486 针对486 进行代码优化。
-o FILE 生成指定的输出文件。用在生成可执行文件时。
-O0 不进行优化处理。
-O 或-O1 优化生成代码。
-O2 进一步优化。
-O3 比-O2 更进一步优化,包括inline 函数。
-shared 生成共享目标文件。通常用在建立共享库时。
-static 禁止使用共享连接。
-UMACRO 取消对MACRO 宏的定义。
-w 不生成任何警告信息。
-Wall 生成所有警告信息。
1 输入gcc test.c
2 输入ls查看,目录下应该有个a.out文件
3 输入./a.out,运行程序,屏幕上显示
The string is hello world
The string printed backward is
4 如果想给程序重命名,使用编译选项-o重新编译。输入gcc –o test test.c
5 输入ls查看,目录下应该有个test文件
3 输入 ./test,运行程序
这个程序执行时显示如下结果:
The string is hello world
The string printed backward is
输出的第一行是正确的,但第二行打印出的东西并不是我们所期望的。我们所设想的输出应该是: The string printed backward is dlrow olleh。由于某些原因,my_print2 函数没有正常工作。下面让我们用gdb 看看问题究竟出在哪儿。
3 GNU gdb
gdb 是一个用来调试C 和C++ 程序的强力调试器。以下是gdb 所提供的一些功能:它使你能监视你程序中变量的值;它使你能设置断点以使程序在指定的代码行上停止执行;它使你能一行行的执行你的代码。 在命令行上键入gdb并按回车键就可以运行gdb 了。
gdb 的常用命令:
File 装入想要调试的可执行文件。
List 列出产生执行文件的源代码的一部分。
Run 执行当前被调试的程序。
Break 在代码里设置断点,这将使程序执行到这里时被挂起。
Next 执行一行源代码但不进入函数内部。
Step 执行一行源代码而且进入函数内部。
Watch 使你能监视一个变量的值而不管它何时被改变。
Print 使你能查看变量值。
Kill 终止正在调试的程序。
Quit 终止gdb。
1加入调试编译选项-ggdb,重新编译。输入gcc -ggdb -o test test.c
2输入命令gdb进入调试环境。
3在gdb 命令行提示符下键入file test,装入程序。
屏幕显示:Reading symbols from test...done.
4输入命令run,运行程序。
屏幕显示:
Starting program: /home/zjh/test
The string is hello world
The string printed backward is
Program exi
文档评论(0)