拓展四之嵌入式开发工具

一、调试器:gdb

1、gdb命令
file [filename]:装入想要调试的可执行文件
kill [filename]:终止正在调试的程序
break [file:]function:在(file文件的)function函数中设置一个断点
clear:删除一个断点,这个命令需要指定代码行或者函数名作为参数
run [arglist]:运行您的程序 (如果指定了arglist,则将arglist作为参数运行程序)
bt:Backtrace: 显示程序堆栈信息
print expr:打印表达式的值
continue:继续运行您的程序 (在停止之后,比如在一个断点之后)
list:列出产生执行文件的源代码的一部分
next:单步执行 (在停止之后); 跳过函数调用
nexti:执行下一行的源代码中的一条汇编指令
set:设置变量的值。例如:set nval=54 将把54保存到nval变量中
step:单步执行 (在停止之后); 进入函数调用
stepi:继续执行程序下一行源代码中的汇编指令。如果是函数调用,这个命令将进入函数的内部,单步执行函数中的汇编代码
watch:使你能监视一个变量的值而不管它何时被改变
rwatch:指定一个变量,如果这个变量被读,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令
awatch:指定一个变量,如果这个变量被读或者被写,则暂停程序运行,在调试器中显示信息,并等待下一个调试命令。参考rwatch和watch命令
Ctrl-C:在当前位置停止执行正在执行的程序,断点在当前行
disable:禁止断点功能,这个命令需要禁止的断点在断点列表索引值作为参数
display:在断点的停止的地方,显示指定的表达式的值。(显示变量)
undisplay:删除一个display设置的变量显示。这个命令需要将display list中的索引做参数
enable:允许断点功能,这个命令需要允许的断点在断点列表索引值作为参数
finish:继续执行,直到当前函数返回
ignore:忽略某个断点制定的次数。
info [name]:查看name信息
load:动态载入一个可执行文件到调试器
xbreak:在当前函数的退出的点上设置一个断点
whatis:显示变量的值和类型
ptype:显示变量的类型
return:强制从当前函数返回
txbreak:在当前函数的退出的点上设置一个临时的断点(只可使用一次)
make:使你能不退出 gdb 就可以重新产生可执行文件
shell:使你能不离开 gdb 就执行 UNIX shell 命令
help [name]:显示GDB命令的信息,或者显示如何使用GDB的总体信息
quit:退出gdb

二、工程管理器:make

1、makefile的自动变量
$*:不包含扩展名的目标文件名称
$+:所有的依赖文件,以空格分开,并以出现的先后为序,可能包含 重复的依赖文件
$<:第一个依赖文件的名称
? : 所 有 时 间 戳 比 目 标 文 件 晚 的 依 赖 文 件 , 并 以 空 格 分 开 ∗ ∗ ?:所有时间戳比目标文件晚的依赖文件,并以空格分开 ** ?,@**:目标文件的完整名称
$^:所有不重复的依赖文件,以空格分开
$%:如果目标是归档成员,则该变量表示目标的归档成员名称

三、脚本语言:shell

1、什么是shell
shell是linux的一外壳,它包在linux内核的外面,为用户和内核之间的交互提供了一个接口;当用户下达指令给操作系统的时候,实际上是把指令告诉shell,经过shell解释,处理后让内核做出相应的动作;系统的回应和输出的信息也由shell处理,然后显示在用户的屏幕上。
2、shell的种类有哪些
常见的 shell 有 sh、bash、csh、tcsh、ash 等。
sh
sh 的全称是 Bourne shell,由 AT&T 公司的 Steve Bourne开发,为了纪念他,就用他的名字命名了。
sh 是 UNIX 上的标准 shell,很多 UNIX 版本都配有 sh。sh 是第一个流行的 Shell。
bash
bash shell 是 Linux 的默认 shell,本教程也基于 bash 编写。
bash 由 GNU 组织开发,保持了对 sh shell 的兼容性,是各种 Linux 发行版默认配置的 shell。
csh
sh 之后另一个广为流传的 shell 是由柏克莱大学的 Bill Joy 设计的,这个 shell 的语法有点类似C语言,所以才得名为 C shell ,简称为 csh。
tcsh
tcsh 是 csh 的增强版,加入了命令补全功能,提供了更加强大的语法支持。
ash
一个简单的轻量级的 Shell,占用资源少,适合运行于低内存环境,但是与下面讲到的 bash shell 完全兼容。
3、shell的重要性
(1)shell 脚本很适合处理纯文本类型的数据,而 Linux 中几乎所有的配置文件、日志文件(如 NFS、Rsync、Httpd、Nginx、MySQL 等),以及绝大多数的启动文件都是纯文本类型的文件。
(2)shell 脚本是实现 Linux 系统自动管理以及自动化运维所必备的工具,Linux 的底层以及基础应用软件的核心大都涉及 Shell 脚本的内容。每一个合格的 Linux 系统管理员或运维工程师,都应该能够熟练的编写 Shell 脚本,只要这样才能提升运维人员的工作效率,减少不必要的重复劳动,为个人的职场发展奠定较好的基础。
4、如何编辑,执行shell脚本程序
一个shell脚本通常包含如下部分:
(1)首行
第一行内容在脚本的首行左侧,表示脚本将要调用的shell解释器,内容如下:
#!/bin/bash
#!符号能够被内核识别成是一个脚本的开始,这一行必须位于脚本的首行,/bin/bash是bash程序的绝对路径,在这里表示后续的内容将通过bash程序解释执行。
(2)注释
注释符号# 放在需注释内容的前面
(3)内容
可执行内容和shell结构
5、定义变量(默认变量,局部变量,自定义变量)
$# :位置参数的数量;
$* :所有位置参数的内容;
$? :命令执行后返回的状态,0表示没有错误,非0表示有错误;
$$:当前进程的进程号;
$! :后台运行的最后一个进程号;
$0 :当前执行的进程名;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值