type
status
date
slug
summary
tags
category
icon
password
填空题
1、gdb的 命令可以对行号与函数名设置断点,____ 命令越过函数执行,____ 命令进入函数执行,_______ 命令跳转到某个行号,_______ 命令继续执行断点后的程序,_______ 命令清除断点。
考点:GDB(GNU Debugger)的基本调试操作命令。
break
:设置断点,可通过函数名或行号。
next
:单步执行,不进入函数内部。
step
:单步执行,会进入函数内部。
jump
行号:无条件跳转到某行执行,通常用于测试或跳过代码。
continue
:程序遇到断点暂停后继续运行。
delete
:删除断点(可通过断点编号删除特定断点)。
2、int open(constchar *pathname,int flags,mode_t mode);中flags flags表示打开文件所采取的动作,有:O_RDONLY(_______ ),O_WRONLY( ___),O_RDWR( _____)。打开/创建文件时,至少得使用上述三个常量中的一个,以下常量是选用的:
O_APPEND( ________)
O_CREAT ( ________)
O_EXCL (如果要创建的文件已存在,则返回 -1,并且修改errno的值)
O_TRUNC( _________)。
考点:Linux 系统调用
open()
函数的掌握,包括 flags
参数的使用。O_RDONLY
/O_WRONLY
/O_RDWR
是三种基本的访问模式,只能选一个。
O_APPEND
:文件指针在每次写操作时移动到文件末尾,实现追加写入。
O_CREAT
:若文件不存在,则创建该文件,需要配合mode
参数。
O_EXCL
:与O_CREAT
一起使用时,若文件已存在,则open()
失败。
O_TRUNC
:若文件已存在,并以写方式打开,则文件内容会被截断清空。
操作题
1、gdb的运用:
将下面计算10的阶乘程序输入,并且用gcc编译链接
编译成带有调试信息的可执行文件:
在gdb中展开调试:
gdb myfactor
(gdb)l
...
下列gdb中的调试操作必须熟练掌握:
列程序代码、加断点、开始运行、显示断点处变量的值、继续或单步运行、退出
每个同学以自己学号的最后一位为循环轮次,显示在这一轮循环中的i,s的值。如:
202....5的同学在截图时,需要给我看gdb环境调试myfactor程序中,断点暂停在i=5时,s=?。
尾号为0,i=10。。。
操作题一
编写程序代码如下

编译可执行文件,并启动GDB调试

下面执行常用调试命令:
- (gdb)l 查看源码

- (gdb)break 8 在第8行设置断点(简写b 8)
- (gdb)run 开始运行程序(简写r)
- (gdb)print i 打印变量i(简写p i)
- (gdb)print s 打印变量s(简写p s)
- (gdb)next 单步执行,不进入函数(简写n)
- (gdb)continue 继续执行直到下一个断点(简写c)
- (gdb)quit 退出(简写q)
我们先来看看前两次断点打印变量的状况

(我的学号为2022214368)
现在我们continue,查看i=8时s的值,发现s = 5040.

最后输入quit退出即可。

操作题二
2、配合书本P110 6-3.c程序,编写一个writeemployee.c程序,实现向employee.txt文档(也可自己命名)写入employee结构类型记录,可实现写入多条记录。
然后实现exam6-3.c,看能否正确读出employee.txt中的记录。给出运行结果。
编写程序writeemployee.c程序。

代码如下所示:
编译和运行程序

编写exam6-3.c代码

编译运行该程序,输出如下所示:

操作题三
3、给出P112 exam6-4.c和P120 exam6-9.c的运行结果:
- exam6-4.c源代码
运行结果如下所示

说明该程序的主要功能是输出执行文件的详细信息,包括最后访问时间,最后修改时间,文件状态的最后更改时间等。
- exam6-9.c源代码
运行结果如下所示:

它会列出指定目录下的所有文件和文件夹名称。
- Author:Koreyoshi
- URL:https://Koreyoshi1216.com/article/1e0c7b13-c6a7-8073-bfa2-d389e1de7247
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!
Relate Posts