gdb通常可以捕捉到发送给它的大多数信号,通过捕捉信号,它就可决定对于正在运行的进程要做些什么工作。例如,按CTRL-C将中断信号发送给gdb,通常就会终止gdb。但是你或许不想中断gdb,真正的目的是要中断gdb正在运行的程序,因此,gdb要抓住该信号并停止它正在运行的程序,这样就可以执行某些调试操作。

Handle命令可控制信号的处理,他有两个参数,一个是信号名,另一个是接受到信号时该作什么。几种可能的参数是:

nostop 接收到信号时,不要将它发送给程序,也不要停止程序。

stop 接受到信号时停止程序的执行,从而允许程序调试;显示一条表示已接受到信号的消息(禁止使用消息除外)

print 接受到信号时显示一条消息

noprint 接受到信号时不要显示消息(而且隐含着不停止程序运行)

pass 将信号发送给程序,从而允许你的程序去处理它、停止运行或采取别的动作。

nopass 停止程序运行,但不要将信号发送给程序。

例如,假定你截获SIGPIPE信号,以防止正在调试的程序接受到该信号,而且只要该信号一到达,就要求该程序停止,并通知你。要完成这一任务,可利用如下命令:

(gdb) handle SIGPIPE stop print

请注意,UNⅨ的信号名总是采用大写字母!你可以用信号编号替代信号名如果你的程序要执行任何信号处理操作,就需要能够测试其信号处理程序,为此,就需要一种能将信号发送给程序的简便方法,这就是signal命令的任务。该命令的参数是一个数字或者一个名字,如SIGINT。假定你的程序已将一个专用的SIGINT(键盘输入,或CTRL-C;信号2)信号处理程序设置成采取某个清理动作,要想测试该信号处理程序,你可以设置一个断点并使用如下命令:

(gdb) signal 2

continuing with signal SIGINT⑵

该程序继续执行,但是立即传输该信号,而且处理程序开始运行。

gdb造价信息

市场价 信息价 询价
材料名称 规格/型号 市场价
(除税)
工程建议价
(除税)
行情 品牌 单位 税率 供应商 报价日期
信号转换器 信号转接装置 查看价格 查看价格

佛山银河照明

13% 佛山市银河兰晶科技股份有限公司
信号单元 品种:断路器附件;系列:BW1框架断路器附件;规格:其他;产品说明:信号单元; 查看价格 查看价格

北元电器

13% 上海表计电力设备有限公司
信号线 品种:信号线;型号:RVVS;标称截面(mm2):4;芯数:12;规格型号:RVVT 查看价格 查看价格

弗朗

m 13% 弗朗电子(大连)有限公司
信号线 型号:RVVP,分类:信号线,芯数:2,截面:1.5,物料代码:01.001.0033,规格型号:RVVP-2×1.5,产品说明:国标 查看价格 查看价格

Lanstar

m 13% 湖南安航智能科技有限公司
信号线 报警信号传输/RVVP2*1.0 查看价格 查看价格

中衡

m 13% 成都宏电宇科技有限公司
网线信号转换器 信号转换 查看价格 查看价格

佛山银河照明

13% 佛山市银河兰晶科技股份有限公司
信号转换器 内部信号转换 查看价格 查看价格

光联照明

13% 上海光联照明有限公司
网线信号转换器 网线信号转换 查看价格 查看价格

大峡谷

13% 大峡谷照明系统(苏州)股份有限公司
材料名称 规格/型号 除税
信息价
含税
信息价
行情 品牌 单位 税率 地区/时间
信号蝶阀 D372X—16 DN65(监控阀) 查看价格 查看价格

湛江市2022年3季度信息价
信号蝶阀 D372X—16 DN100(监控阀) 查看价格 查看价格

湛江市2022年3季度信息价
信号蝶阀 D372X—16 DN125(监控阀) 查看价格 查看价格

湛江市2022年3季度信息价
信号蝶阀 D372X—16 DN200(监控阀) 查看价格 查看价格

湛江市2022年3季度信息价
信号蝶阀 D372X—16 DN50(监控阀) 查看价格 查看价格

湛江市2022年1季度信息价
信号蝶阀 D372X—16 DN100(监控阀) 查看价格 查看价格

湛江市2022年1季度信息价
信号蝶阀 D372X—16 DN125(监控阀) 查看价格 查看价格

湛江市2022年1季度信息价
信号蝶阀 D372X—16 DN200(监控阀) 查看价格 查看价格

湛江市2021年4季度信息价
材料名称 规格/需求量 报价数 最新报价
(元)
供应商 报价地区 最新报价时间
AC-GDB 600 800 250|1台 1 查看价格 广东中建普联科技股份有限公司 全国   2022-08-11
消防信号(干接点信号 消防信号(干接点信号)|1台 1 查看价格 广州满溢电子科技有限公司 广东  广州市 2017-05-24
信号功放 信号功放|1台 2 查看价格 广州市华澳喷泉景观园林工程有限公司 广东  广州市 2019-10-23
信号控制模块 信号|1个 1 查看价格 哈尔滨青鸟环宇消防设备销售有限公司 黑龙江  双鸭山市 2011-12-06
信号 信号灯|2套 3 查看价格 广西宗通交通工程有限公司 广西  梧州市 2021-06-28
信号监听器 信号监听器|1个 1 查看价格 广州市保伦电子有限公司 四川   2019-04-18
示流信号 示流信号器|1台 2 查看价格 广东岑安机电有限公司 广东  广州市 2018-09-12
scats信号 scats信号机|10架 1 查看价格 云南星河交通电子有限公司 云南  昆明市 2017-07-18

有一组专用的gdb变量可以用来检查和修改计算机的通用寄存器,gdb提供了目 前每一台计算机中实际使用的4个寄存器的标准名字:

$pc :程序计数器

$fp :帧指针(当前堆栈帧)

$sp :栈指针

$ps :处理器状态

call name 调用和执行一个函数

(gdb) call gen_and_sork(1234,1,0)

(gdb) call printf(“abcd”)

=4

finish 结束执行当前函数,显示其返回值(如果有的话)

gdb信号常见问题

next 不进入的单步执行

step 进入的单步执行如果已经进入了某函数,而想退出该函数返回到它的调用函数中,可使用命令finish

whatis:识别数组或变量的类型

ptype:比whatis的功能更强,他可以提供一个结构的定义

set variable = value:将值赋予变量

print variable = value or p variable = value : 除了显示一个变量的值外,还可以用来赋值

1.显示当前gdb的断点信息:

(gdb) info break

他会以如下的形式显示所有的断点信息:

Num Type Disp Enb Address What

1 breakpoint keep y 0x000028bc in init_random at qsort2.c:155

2 breakpoint keep y 0x0000291c in init_organ at qsort2.c:168

删除指定的某个断点:

(gdb) delete breakpoint 1

该命令将会删除编号为1的断点,如果不带编号参数,将删除所有的断点

(gdb) delete breakpoint

禁止使用某个断点

(gdb) disable breakpoint 1

该命令将禁止断点1,同时断点信息的 (Enb)域将变为 n

允许使用某个断点

(gdb) enable breakpoint 1

该命令将允许断点1,同时断点信息的 (Enb)域将变为 y

清除源文件中某一代码行上的所有断点

(gdb)clear number

注:number 为源文件的某个代码行的行号

2.设置条件断点

例子:

#include
 
  intmain(void)
{
inti=0;
intsum=0;for(i=1;i<=200;i  )
{
sum =i;
}printf("%d
",sum);
return0;
}
 

gdb可以设置条件断点,也就是只有在条件满足时,断点才会被触发,命令是“break … if cond”。以上面程序为例:

(gdb)start
Temporarybreakpoint1at0x4004cc:filea.c,line5.
Startingprogram:/data2/home/nanxiao/aTemporarybreakpoint1,main()ata.c:5
5inti=0;
(gdb)b10ifi==101
Breakpoint2at0x4004e3:filea.c,line10.
(gdb)r
Startingprogram:/data2/home/nanxiao/aBreakpoint2,main()ata.c:10
10sum =i;
(gdb)psum
$1=5050

可以看到设定断点只在i的值为101时触发,此时打印sum的值为5050。

break命令(可以简写为b)可以用来在调试的程序中设置断点,该命令有如下四种形式:

break line-number 使程序恰好在执行给定行之前停止。

break function-name 使程序恰好在进入指定的函数之前停止。

break line-or-function if condition 如果condition(条件)是真,程序到达指定行或函数时停止。

break routine-name 在指定例程的入口处设置断点

如果该程序是由很多原文件构成的,你可以在各个原文件中设置断点,而不是在当前的原文件中设置断点,其方法如下:

(gdb) break filename:line-number

(gdb) break filename:function-name

要想设置一个条件断点,可以利用break if命令,如下所示:

(gdb) break line-or-function if expr

例:

(gdb) break 46 if testsize==100

从断点继续运行:continue 命令

利用print 命令可以检查各个变量的值。

(gdb) print p (p为变量名)

print 是gdb的一个功能很强的命令,利用它可以显示被调试的语言中任何有效的表达式。表达式除了包含你程序中的变量外,还可以包含以下内容:

对程序中函数的调用

(gdb) print find_entry(1,0)

数据结构和其他复杂对象

(gdb) print *table_start

={e=reference=’\000’,location=0x0,next=0x0}

值的历史成分

(gdb)print (为历史记录变量,在以后可以直接引用的值)

人为数组

人为数组提供了一种去显示存储器块(数组节或动态分配的存储区)内容的方法。早期的调试程序没有很好的方法将任意的指针换成一个数组。就像对待参数一样,让我们查看内存中在变量h后面的10个整数,一个动态数组的语法如下所示:

base@length

因此,要想显示在h后面的10个元素,可以使用h@10:

(gdb)print h@10

=(-1,345,23,-234,0,0,0,98,345,10)

whatis命令可以显示某个变量的类型

(gdb) whatis p

type = int *

要想运行准备调试的程序,可使用run命令,在它后面可以跟随发给该程序的任何参数,包括标准输入和标准输出说明符(<;和>;)和shell通配符(*、?、[、])在内。如果你使用不带参数的run命令,gdb就再次使用你给予前一条run命令的参数,这是很有用的。利用set args 命令就可以修改发送给程序的参数,而使用show args 命令就可以查看其缺省参数的列表。

(gdb) file a.out //加载被调试的可执行程序文件。

(gdb)set args –b –x

(gdb) show args

(gdb)r //执行程序

backtrace命令为堆栈提供向后跟踪功能。

Backtrace 命令产生一张列表,包含着从最近的过程开始的所有有效过程和调用这些过程的参数。

List

(gdb) list line1,line2

查看源代码

list lineNum 在lineNum的前后源代码显示出来

list 列出当前行的后面代码行

list - 列出当前行的前面代码行

list function

set listsize count

设置显示代码的行数

show listsize

显示打印代码的行数

list first,last

显示从first到last的源代码行

2009年12月29日,程序调试工具 GDB 7.0.1 发布,新版本修正了7.0版本的一些严重的堆栈溢出bug,这些bug可能导致 GDB 调试进程中断,修正了在 FreeBSD 和 IRⅨ 系统下无法编译的问题,增加了对 Thumb2调试的支持,还有其他一些小bug的修复。

2010年03月19日,GDB 7.1 发布,

详细改进内容:多程序调试的支持;

位置独立的可执行文件(派)调试的支持;

新的目标(包括一个模拟器):Xilinx MicroBlaze和瑞萨RX;

Python支持增强;

c 支持扩展;

新tracepoint功能;

过程记录的改进;

远程协议扩展。

2010年09月06日 ,GDB 7.2 发布,

该版本改进记录:

⒈ 支持D语言

⒉ C 改进,支持参数依赖查找ADL,静态常量类成员和改进了用户自定义操作符的支持

⒊ Python 调试的改进,包括断点、符号、符号表、程序空间、线程等可通过命令行进行操作

⒋ Furthermore,enhancements were made for tracepoints and for GDBserver.在跟踪点和GDB程序上有了改善。

⒌ 支持 ARM Symbian 平台

⒍ 其他方面的改进和bug修复。

2011年08月26日,GDB 7.3a 发布,

变化:

1。GDB可以理解线程的名字。

2。这个命令”线程名称”(指定一个名称)和“线程找到[REGEXP]”(匹配名称、目标ID,或者额外的信息)被添加。

3。Python脚本支持大大增强。

4。在c 的支持,异常处理是提高,模板参数放在范围在一个实例化时调试。

5。线程调试的核心转储在GNU / Linux成为可能。

6。最初支持C语言版本的OpenCL。

7。许多其他改进。

一般来说,GDB主要帮助你完成下面四个方面的功能:

1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。

2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)

3、当程序被停住时,可以检查此时你的程序中所发生的事。

4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。

GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNⅨ下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。

于是UNⅨ下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成。在这里并不是要和Windows做个什么比较,所谓“寸有所长,尺有所短”,图形化工具还有时不如命令行的地方。2100433B

gdb信号文献

起重指挥信号 起重指挥信号

格式:pdf

大小:2.4MB

页数: 21页

评分: 4.6

起重吊运指挥信号 第一节 起重指挥信号 (GB5082— 85) 本标准对现场指挥人员和起重司机所使用的基本信号和有关安全技术作了统一规定。 本标准适用于以下类型的起重机械: 桥式起重机 (包括冶金起重机 )、门式起重机、装卸桥、缆索起重机、塔式起重机、门座 起重机、汽车起重机、轮胎起重机、铁路起重机、履带起重机、浮式起重机、桅杆起重机、 搬用起重机等。 本标准不适用于矿井提升设备、载人电梯设备。 一、名词术语 通用手势信号——指各种类型的起重机在起重吊运中普遍用的指挥手势。 专用手势信号——指具体特殊的起升、变幅、回转机构的起重机单独作用的指挥手势。 吊钩 (包括吊环、电磁吸盘、抓斗等 )——指空钩以及负有载荷的吊钩。 起重机“前进”或“后退”——“前进”指起重机向指挥人员开来; “后退”指起重机 离开指挥人员。 前、后、左、右——在指挥语言中,均以司机所在位置为基准。 音响符号: “

立即下载
信号反馈开关 信号反馈开关

格式:pdf

大小:2.4MB

页数: 20页

评分: 4.4

信号反馈开关 一、产品 [限位行程开关盒 ] 的详细资料: 产品名称:限位行程开关盒 产品特点:HAPL-310N和 HAPL-410N型限位行程开关盒是传送执行器和阀门的位置讯号到现场和遥控操作站。 它能直接安装在执行器上部, 符合标准 VDI/VDE3845。 特点有现场可视位置指示器,快速调整位置凸轮;可调式凸轮通过花键和弹簧安装,只要开关凸轮脱离花健便可旋转调整所需的位置,有防掉外壳螺钉和两个 电缆进口 G1/2管接口。内部行程开关预先连接接线终端, 8 个接线端子,并可用于电磁阀的连接。 二、技术参数: HAPL-310N HAPL-410N 外壳防护型( I P67) 防爆型( Exd II BT4 ) 选 项:传送电流输出信号,接近式开关,电阻性电位计输出信号 外观处理:粉末烤漆 机械式微动开关 电压:交流 220V AC 或直流 DC 电流: 0.6A , 125VDC,

立即下载

OpenWrt是在实现路由器功能方面很受欢迎的开源软件之一。本书基于OpenWrt,详细介绍了智能路由器的开发。

本书共计15章,按照认识路由器的顺序进行编写,介绍了智能路由器、开发环境及编译分析、OpenWrt包管理系统、OpenWrt配置、软件开发、GDB调试、网络基础知识、路由器基础软件模块、常用软件模块、IP路由、DNS与DHCP、iptables防火墙、UCI防火墙、UPnP、网络测试及分析工具等。丰富的理论知识和代码示例可以帮助读者深入认识和理解OpenWrt技术,并能够提升开发水平和开发效率。

本书适合软件架构师、软件开发工程师、软件测试工程师以及计算机相关专业的学生阅读。读者通过阅读本书,不仅可以掌握OpenWrt技术,还能进一步提升自己的软件开发水平。

由于光电倍增管增益高和响应时间短,又由于它的输出电流和入射光子数成正比,所以它被广泛使用在天体光度测量和天体分光光度测量中。其优点是:测量精度高,可以测量比较暗弱的天体,还可以测量天体光度的快速变化。天文测光中,应用较多的是锑铯光阴极的倍增管,如RCA1P21。这种光电倍增管的极大量子效率在4200埃附近,为20%左右。还有一种双碱光阴极的光电倍增管,如GDB-53。它的信噪比的数值较RCA1P21大一个数量级,暗流很低。为了观测近红外区,常用多碱光阴极和砷化镓阴极的光电倍增管,后者量子效率最大可达50%。

普通光电倍增管一次只能测量一个信息,即通道数为1。矩阵。由于通道数受阳极末端细金属丝的限制,只做到上百个通道。

七波长高温计是MSTC一E16多光谱高温计的组成部分之一。图1给出了七波长高温计的原理方框图。

卡塞格林望远镜将材料表面成象在入射小孔盘(2)上。人射小孔盘圆周上加工有六个小孔,最小的有效直径为0.82毫米。选择小孔就可以限制被测表面元的大小。进人小孔的辐射经镜(3)准直,通过干涉滤光片组(4)、减光玻璃`片(5),达到GDB一239型光电倍增管(6)的阴极灵敏面上。干涉滤光片组(4)装在转盘的圆周上,转盘用同步电机驱动。滤光片的峰值波长为4970埃、5990埃、6510埃、6990埃、5010埃、名990埃、9978埃。减光玻璃片(5)采用与被测对象的光谱分布、光电倍增管的光谱灵敏度相匹配的玻璃片,既起到了压缩光电倍增管阳极输出的动态范围,也起到了使光电倍增管运行在线性区的作用。与原论证方案中采用对数放大器相比,还提高了系统精度。因为对数放大器受对数元件的影响,目前只能达到1%的精度。光电倍增管输出的讯号经前置放大、主放大,最后由电子示波器显示,照相机拍照记录。

这台高温计的讯号周期为10毫秒,它隐含着一个假设,即在10毫秒内,材料表面温度和辐射特性是不变的。测量结果证明,这个假设是正确的。当烧蚀处于稳态时,周期间的讯号变化不大。 2100433B

gdb相关推荐
  • 相关百科
  • 相关知识
  • 相关专栏