GDB常用命令大全GDB命令详细解释

大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。
如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC
【菜科解读】
GDB是一个强大的命令行调试工具。
大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。
如果你是在UNIX平台下做软件,你会发现GDB这个调试工具有比VC、BCB的图形化调试器更强大的功能。
所谓“寸有所长,尺有所短”就是这个道理。
gdb(GNU Debuger),它可以用来调试C和C++程序,功能不亚于Windows下的许多图形界面的调试工具。
GDB主要帮忙你完成下面四个方面的功能:1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。
(断点可以是条件表达式)3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、动态的改变你程序的执行环境。
gdb基本命令
在程序编译时增加-g选项以支持gdb调试
如:
$ gcc -g example.c -o example.x
通过上述命令对example.c编译之后,使用下列命令进入到gdb调试:
$ gdb example.x
在gdb调试中,常用的命令有以下几个:
$ list 缩略为 l
列出程序源码,每次列出10行,按回车重复运行上一命令;
$ run 缩略为 r
程序开始运行,在r后可以加入程序启动参数,程序运行到断点处暂停;
$ continue 缩略为 c
程序继续运行,到下一断点处暂停;
单步调试
$ step 缩略为s
$ next 缩略为 n
程序继续运行到下一断点;
$ break 缩略为 b
在程序某一位置设置断点;
$ info break 缩略为 i b
查看断点信息;
设置/查看运行参数
$ set args ---/show args
加载运行中的进程进行调试(Attach to the running process to be debugged.):
$ gdb attatch pid
Specifying source directories
$ dir dirname …
以十六进制输出内存块数据
$ x/28hx ---
段错误调试,core文件样例
通过ulimit命令查看一下系统是否配置支持了dump core的功能。
通过ulimit -c或ulimit -a,可以查看core file大小的配置情况,如果为0,则表示系统关闭了dump core;可以通过ulimit -c unlimited来打开。
若发生了段错误,但没有core dump,是由于系统禁止core文件的生成。
$ gdb [exec file] [core file]
查看堆栈信息:
$ bt
PS:对于python程序在linux下可以使用pdb做调试!
Published by Windows Livewriter.
调试开始时,必须先载入要进行调试的程序,可以用以下两种方式:
* 在启动gdb后执行以下命令:
file 可执行文件路径
* 在gdb启动时就载入程序:
gdb 可执行文件路径
载入程序后,接下来就是要进行断点的设置,要监视的变量的添加等工作,下面对在这个过程中常会用到的命令逐一进行介绍:
* list :显示程序中的代码,常用使用格式有:
list
输出从上次调用list命令开始往后的10行程序代码。
list -
输出从上次调用list命令开始往前的10行程序代码。
list n
输出第n行附近的10行程序代码。
list function
输出函数function前后的10行程序代码。
* forward/search :从当前行向后查找匹配某个字符串的程序行。
使用格式:
forward/search 字符串
查找到的行号将保存在$_变量中,可以用print $_命令来查看。
* reverse-search :和forward/search相反,向前查找字符串。
使用格式同上。
* break :在程序中设置断点,当程序运行到指定行上时,会暂停执行。
使用格式:
break 要设置断点的行号
* tbreak :设置临时断点,在设置之后只起作用一次。
使用格式:
tbreak 要设置临时断点的行号
* clear :和break相反,clear用于清除断点。
使用格式:
clear 要清除的断点所在的行号
* run :启动程序,在run后面带上参数可以传递给正在调试的程序。
* awatch :用来增加一个观察点(add watch),使用格式:
awatch 变量或表达式
当表达式的值发生改变或表达式的值被读取时,程序就会停止运行。
* watch :与awatch类似用来设置观察点,但程序只有当表达式的值发生改变时才会停止运行。
使用格 式:
watch 变量或表达式
需要注意的是,awatch和watch都必须在程序运行的过程中设置观察点,即可运行run之后才能设置。
* commands :设置在遇到断点后执行特定的指令。
使用格式有:
commands
设置遇到最后一个遇到的断点时要执行的命令
commands n
设置遇到断点号n时要执行的命令
注意,commands后面跟的是断点号,而不是断点所在的行号。
在输入命令后,就可以输入遇到断点后要执行的命令,每行一条命令,在输入最后一条命令后输入end就可以结束输入。
* delete :清除断点或自动显示的表达式。
使用格式:
delete 断点号
* disable :让指定断点失效。
使用格式:
disable 断点号列表
断点号之间用空格间隔开。
* enable :和disable相反,恢复失效的断点。
使用格式:
enable 断点编号列表
* ignore :忽略断点。
使用格式:
ignore 断点号 忽略次数
* condition :设置断点在一定条件下才能生效。
使用格式:
condition 断点号 条件表达式
* cont/continue :使程序在暂停在断点之后继续运行。
使用格式:
cont
跳过当前断点继续运行。
cont n
跳过n次断点,继续运行。
当n为1时,cont 1即为cont。
* jump :让程序跳到指定行开始调试。
使用格式:
jump 行号
* next :继续执行语句,但是跳过子程序的调用。
使用格式:
next
执行一条语句
next n
执行n条语句
* nexti :单步执行语句,但和next不同的是,它会跟踪到子程序的内部,但不打印出子程序内部的语句。
使用格式同上。
* step :与next类似,但是它会跟踪到子程序的内部,而且会显示子程序内部的执行情况。
使用格式同上。
* stepi :与step类似,但是比step更详细,是nexti和step的结合。
使用格式同上。
* whatis :显示某个变量或表达式的数据类型。
使用格式:
whatis 变量或表达式
* ptype :和whatis类似,用于显示数据类型,但是它还可以显示typedef定义的类型等。
使用格式:
ptype 变量或表达式
* set :设置程序中变量的值。
使用格式:
set 变量=表达式
set 变量:=表达式
* display :增加要显示值的表达式。
使用格式:
display 表达式
* info display :显示当前所有的要显示值的表达式。
* delete display/undisplay :删除要显示值的表达式。
使用格式:
delete display/undisplay 表达式编号
* disable display :暂时不显示一个要表达式的值。
使用格式:
disable display 表达式编号
* enable display :与disable display相反,使用表达式恢复显示。
使用格式:
enable display 表达式编号
* print :打印变量或表达式的值。
使用格式:
print 变量或表达式
表达式中有两个符号有特殊含义:$和$$。
$表示给定序号的前一个序号,$$表示给定序号的前两个序号。
如果$和$$后面不带数字,则给定序号为当前序号。
* backtrace :打印指定个数的栈帧(stack frame)。
使用格式:
backtrace 栈帧个数
* frame :打印栈帧。
使用格式:
frame 栈帧号
* info frame :显示当前栈帧的详细信息。
* select-frame :选择栈帧,选择后可以用info frame来显示栈帧信息。
使用格式:
select-frame 栈帧号
* kill :结束当前程序的调试。
* quit :退出gdb。
如要查看所有的gdb命令,可以在gdb下键入两次Tab(制表符),运行“help command”可以查看命令command的详细使用格式。
GDB,常用,命令,大全,详细,解释,GDB,是,一个,强,缪勒莱尔错觉的形成原因,眼动距离为主要原因 服装设计常用
什么是缪勒莱尔错觉将两条长度相同的线段平行放置,然后在两端添加两个箭头,如上图上下两条线段箭头朝向刚好相反,在观察的时候人们会发现箭头朝内的线段要比箭头朝外的要短,比如上图中很多人会认为上面的线段比下面的线段要长,这个现象就被称为缪勒莱尔错觉,是1889年提出的心理学理论。
这个理论对人们的影响是巨大的,因为它在很多领域都有应用,比如服装设计、建筑设计等等,它可以让本身大小相同的服装显得更大或者更小,也可以让建筑空间通过视错觉来显得更宽敞,所以一直以来人们能在生活中经常看到它的存在,只不过很多人没有在意。
缪勒莱尔错觉的形成原因从表面上来看,形成的原因是由于箭头朝外的时候,给人的感觉是线条占用的空间更大,故而人会觉得线段似乎在之前的基础上延长了,相反的箭头朝内的时候,线段会给人一种收缩的感觉,所以总体上来看会给人箭头朝外的线段要比朝内的更长的错觉。
在大脑中这个错觉给出的计算结果,会比实际结果差多少呢?无数的实验数据表明,人们会认为箭头朝外的线段要比朝内的线段长25-30%,而这个数值取决于箭头中斜线与线段之间的夹角,当夹角是90度的时候,错觉误差为零,从它是一种余弦正比的关系。
缪勒莱尔错觉在建筑中的应用由于箭头的朝向会让人对线段的长短产生错误的判断,所以根据这个特点人们可以将它应用在很多领域,比如建筑设计中,当我们需要更宽敞的空间时,可以在两端向外朝向的箭头,可以在视觉上给人一种延长的感觉。
与其他的大小视错觉相比,缪勒莱尔提出的这个理论是表现最明显的,它会给人非常直观的感受,尽管这个感受是错误的,但是如果不去深究它,人们并不会发现它其中的规律,而研究表明,箭头向外的线段引起距离较大的眼动,箭头向内的线段引起距离较小的眼动,因此前者看上去长一些。
几何视错觉是什么意思我们知道视错觉是由于人的经验主义或者是不当的参照物形成的错误的判断和感知,而几何视错觉又是视觉错中被研究得最多的,它是物体的大小、面积、形状等等几何构成和实际数字有明显差异的错觉,在生活中运用也是最多的。
缪勒莱尔的错觉属于长度错觉的类型,专家认为它有三个特点:第一是热容易被自己的视觉系统所欺骗;第二是眼睛获得的视觉信息可能是模棱两可的;第三则是眼睛看东西只是一个构建过程,而最终物体是什么形状、颜色和大小则有大脑来决定。
p图:掌握基础技巧与常用软件,轻松提升图片编辑能力
无论是社交媒体上的分享,还是工作中的图像处理,掌握基本的图片编辑技巧和软件使用能力都显得尤为重要。
本文将为您介绍如何轻松提升图片编辑能力,涵盖基础技巧、常用软件及其应用场景,帮助您在图片处理上游刃有余。
工具原料:系统版本:Windows 11、macOS Ventura、Android 13、iOS 16品牌型号:Dell XPS 13、Apple MacBook Air M2、Samsung Galaxy S23、iPhone 14软件版本:Adobe Photoshop 2023、GIMP 2.10、Canva 2023、Snapseed 2.19一、基础图片编辑技巧1、裁剪与调整:裁剪是图片编辑中最基本的操作之一。
通过裁剪,您可以去掉不必要的部分,突出主题。
调整图片的比例和构图,使其更具视觉吸引力。
使用软件如Photoshop或GIMP,您可以轻松选择裁剪工具,设定所需的尺寸和比例。
2、色彩调整:色彩是影响图片效果的重要因素。
您可以通过调整亮度、对比度、饱和度等参数来改善图片的整体效果。
在Photoshop中,使用“图像”菜单下的“调整”选项,可以快速实现这些调整。
3、滤镜与特效:滤镜可以为图片增添艺术效果,使其更具个性。
Snapseed和Canva提供了多种滤镜和特效,用户可以根据需要选择合适的效果,提升图片的视觉冲击力。
二、常用图片编辑软件1、Adobe Photoshop:作为行业标准的图像编辑软件,Photoshop功能强大,适合专业用户。
它提供了丰富的工具和功能,如图层管理、选区工具、修复工具等,适合进行复杂的图片处理。
2、GIMP:GIMP是一款开源的图像编辑软件,功能与Photoshop相似,但完全免费。
它适合预算有限的用户,提供了多种插件和扩展功能,支持多种文件格式。
3、Canva:Canva是一款在线设计工具,适合快速制作社交媒体图像、海报和简报。
其用户友好的界面和丰富的模板,使得即使是新手也能轻松上手。
4、Snapseed:Snapseed是一款移动端图片编辑应用,功能强大且易于使用。
它提供了多种编辑工具和滤镜,适合在手机上快速处理图片。
三、实际应用场景1、社交媒体:在Instagram或微信等社交平台上,用户常常需要对图片进行美化。
使用Canva,您可以快速选择模板,添加文字和图形,制作出吸引眼球的帖子。
2、工作报告:在工作中,您可能需要将数据图表或产品图片整合到报告中。
使用Photoshop,您可以对图片进行裁剪、调整色彩,并添加注释,使其更具专业性。
3、个人项目:无论是旅行照片还是家庭聚会,您都希望将美好的瞬间记录下来。
使用Snapseed,您可以在手机上快速编辑照片,添加滤镜和特效,分享给朋友和家人。
拓展知识:1、图像格式:了解不同的图像格式(如JPEG、PNG、GIF等)及其适用场景,可以帮助您选择合适的格式进行保存。
JPEG适合照片,PNG适合需要透明背景的图像,而GIF则适合简单动画。
2、图层与蒙版:在Photoshop中,图层和蒙版是实现复杂编辑的关键。
图层允许您在不破坏原始图像的情况下进行编辑,而蒙版则可以帮助您选择性地显示或隐藏图层内容。
3、色彩理论:掌握基本的色彩理论可以帮助您在编辑时做出更好的选择。
了解色轮、互补色和色彩搭配,可以提升您在图片编辑中的审美能力。
总结:掌握图片编辑的基础技巧和常用软件,不仅能提升您的图片处理能力,还能让您的社交媒体内容更加出色。
无论您是专业用户还是新手,通过不断实践和学习,您都能在图片编辑的道路上越走越远。
希望本文能为您提供实用的指导,助您轻松提升图片编辑能力。