display exp 程序一旦停止就显示表达式的值 (6) 显示栈的信息
backtrace/backtrace full frame traceNum (7) 显示程序的信息
list/list num/list func info breakpoints/info break info func/into var /info files info local /info prog/info args
disassemble func/info frame/ examine(x) addr (8) 退出quit 帮助help 执行命令 shell command str 3 make (1) Make命本:
Make [flags] [macro definitions] [targets]
[flags]如果没有\参数,则系统将默认当前目录下名为makefile或者名为Makefile的文件为描述文件。在Linux中, GNU make 工具在当前工作目录中按照GNUmakefile、makefile、Makefile的顺序搜索 makefile文件。
[macro definitions]makefile文件中的变量定义
[targets]make的目标,默认是makefile文件中的第一个目标 (2) makefile文件:规则的集合
a:b command
a为目标。可以是.o,也可以是ELF,还可以是一个伪目标。 b为依赖文件。就是,要生成那个a所需要的文件或是目标。 command也就是make需要执行的,从b生成a的命令 (3)其他 变量:
定义 CFLAGS=-c 引用 $(CFLAGS)
特殊变量$@目标文件,$^所有的依赖文件,$<第一个依赖文件 命令:
不显示命令内容 @ 命令出错不处理 - 多条相关命令 ; 伪目标与自动推导: add.o : addsub.h .PHONY : clean clean :
rm edit $(objects) 文件搜索:
特殊变量 VPATH=./include:../include 特殊指令 vpath %.h ./include:../include 4 实验任务
(1)编写程序:main函数所在的文件名字为test3.c,程序功能为从键盘输入两个数求其和(调用add.c中的函数)和差(调用sub.c中的函数)。
(2)编写一个makefile文件,并用make编译刚才的程序 (3)设置断点,观察点,调试程序
实验四 linux多进程设计
实验目的
1.了解进程与程序的区别,加深对进程概念的理解;
2.了解fork( )系统调用的返回值,掌握用fork()创建进程的方法; 实验内容
1,用vi输入下面的程序,编译、调试、输出结果
#include
pid_t child_pid; /*fork函数
*作用:系统调用,产生一个子进程,调用一次返回两次 *返回值:pid_t类型,在头文件中定义,通常为整形 * 0 子进程返回
* ID 父进程返回的子进程ID */
child_pid=fork(); if(child_pid==0) {
int i=0;
for(;i<5;i++) {
printf(\
}
sleep(1);//wait one second } } else {
printf(\}
int j=0;
for(;i<5;i++) {
printf(\ sleep(1); }
return 0;
2,用man察看fork、sleep的用法 3,试验任务
编写一C语言程序,实现在程序运行时通过系统调用fork( )创建两个子进程,使父、子三进程并发执行,父亲进程执行时屏幕显示“I am father”,儿子进程执行时屏幕显示“I am son”,女儿进程执行时屏幕显示“I am daughter”。
实验五 Linux进程间的同步
实验目的
1.掌握进程并发执行的原理,理解进程并发执行的特点,区分进程并发执行与串行执行;
2.熟悉wait、exit等系统调用。 3.熟悉信号同步的方法。 实验内容
1.用man察看wait、exit的用法
2.修改实验四的程序,在父、子进程中分别使用wait、exit等系统调用“实现”其同步推进,多次反复运行改进后的程序,观察并记录运行结果。
实验六 Linux进程间的通信
实验目的
学习如何利用管道机制、消息缓冲队列、共享存储区机制进行进程间的通信,并加深对上述通信机制的理解。 实验内容
1.了解系统调用pipe()、msgget()、msgsnd()、msgrcv()、msgctl()、shmget()、shmat()、shmdt()、shmctl()的功能和实现过程。semget() semop() semctl()
2.编写一C语言程序,使其用管道来实现父子进程间通信。子进程向父进程发送字符串“is sending a message to parent!”;父进程则从管道中读出子进程发来的消息,并将其显示到屏幕上,然后终止。
3.运行该程序,观察、记录并简单分析其运行结果。
实验七 Linux文件操作
实验目的
复习标准C语言的文件操作函数,熟悉linux有关文件操作的系统调用,并理解他们之间的关系。