UNIX系统开发-sdb命令使用:程序执行控制
UNIX操作

一、UNIX简单操作Sun 系统操作常用命令系统启动:1、开机先开显示器,后开主机电源敲入用户名、密码登录用户名:zd2000 密码:zd2004启动NSC300UX在桌面控制台上点击“nsc300ux”,或者在用户管理中点击启动系统,字样就可以自动启动了,直到弹出告警窗口为启动成功2、注:非正常断电,会对系统造成很大损害,不能对机器直接按电源键关机或者直接按电源键关机后再开,要打开终端窗口后输入相关命令来实现,关机:右键——工具——终端打开终端输入su (回车)口令:zd2004出现“#”号输入init 5重启:右键——工具——终端打开终端su (回车)口令:zd2004出现“#”号输入init 6或者reboot备份:右键——工具——终端打开终端在/u s e r s/z d2000后输入c d s q l/t o o l s(回车)在目录后输入b a c k u p_o r a c l e(空格)d a t a20100108(回车)即可完成数据库的备份此时,在/u s e r s/z d2000/s q l/O r a c l e_d a t a文件夹下面有个文件名为d a t a20100108.d m p的文件。
该文件就是备份的数据库。
备份zd2000文件夹:右键——工具——终端打开终端su (回车)口令:zd2004出现“#”号# pwd(用于查看当前路径)(显示:# /users/zd2000)# cd ..# pwd(显示:# /users)# ls(用于显示该路径下的文件和文件夹)(显示:# Oracle zd2000 …)# tar cvf zd2000-1071.tar zd2000就可以生成zd2000-1071.tar 的文件在路径:/users下注意:打包文件用的命令如下:tar cvf 打包生成的文件名称.tar 被打包的文件名称解包文件用的命令如下:tar xvf 打包生成的文件名称.tar二、Oracle数据库简单操作1、右键——工具——终端打开终端,2、导入信息表输入cd exe 回车进入/zd2000/exe输入imp_data 6 遥信表的名字(例如yx_10812.txt)-reset 回车这个是导入遥信imp_data 7 遥测表的名字(例如yc_10812.txt)-reset 回车这个是导入遥测imp_data 15 遥控表的名字(例如yk_10812.txt)-reset 回车这个导入遥控2、导出信息表输入exp_data 6 遥信表的名字(例如yx_10812.txt)回车这个是导出遥信exp_data 7 遥信表的名字(例如yc_10812.txt)回车这个是导出遥测exp_data 15 遥控表的名字(例如yk_10812.txt)回车这个是导出遥控不管是导入或者导出的数据表都存放在/zd2000/data/imp_exp下面,再把文件拷出就可以3、注意事项轻易不要导入数据库文件就是dmp文件如果要导出数据库文件操作如下:cd sql/tools/ 回车进入/zd2000/sql/tools输入backup_oracle 备份的文件名称(例如data10816)回车备份后生成的文件在zd2000/sql/oracle_data 目录下面再把文件拷出就可以三、画面编辑1、点击画面调用上三角符号,然后在弹出的菜单栏中选择画面编辑2、在画面编辑菜单栏中——打开图形——选择需要编辑的图形3、打开图形后,必须点击一下菜单栏中的“选择”按钮,才能继续下一步操作4、画面编辑必须有工程师指导操作,个人勿自己操作5、在图标的“图形组”里点击“图形显示”,左键点击弹出的画面就能进入主接线图,在主接线图上点击间隔名称可调用间隔的画面,注意:.因主接线图上画面太多,主接线图禁止遥控,做遥控要进入分图里控。
UNIX操作系统常用功能操作系统常用命令

UNIX操作系统常用功能ls功能:显示指定工作目录下之内容语法:ls [参数选项][目录名]说明:显示指定工作目录下的内容参数选项:如下图选项选项说明-a 显示所有文档及目录,包括隐藏文件-l 将文档名、文档类型、权限、拥有者、大小等信息详细列出-r 将文档以相反次序显示(原定按英文字母次序)-t 将文档依修改时间之先后次序列出-A 同 -a ,但不列出“.” (当前目录) 及 ".." (父目录)-F 在列出的文档名称后加一符号;例如可执行文档则加“*”,目录则加“/”,符号链接文件加“@”-R 递归地显示子目录中的内容Dir功能:同 lscd功能:变换工作目录语法:cd [目录名]说明:用于更换工作目录例题:如下1、cd .. 更换目录回到上一级目录2、cd . 更换到当前目录3、cd ~ 更换目录到当前用户的个人宿主目录4、cd /etc/vsftpd/ 更换到/etc/vsftpd目录5、cd / 更换目录到根目录pwd功能:显示用户当前的工作路径,显示出完整的当前活动目录名称。
语法:pwd说明:显示当前工作目录的绝对路径clear功能:在允许的情况下清除屏幕语法:clear说明:清楚屏幕上的信息man功能:查看指令用法的help语法:man [参数选项] 帮助主题。
说明:man实际上就是查看命令用法的help,学习任何一种UNIX类的操作系统最重要的就是学会使用man这个辅助功能。
man是manual(手册)的缩写字,它的说明非常的详细,建议记得一些基本用法就可以了。
mkdir功能:用来建立新的目录语法:mkdir [参数选项] 目录名说明:创建一个空目录,要求此用户在当前目录上具有写权限参数选项:如下图选项选项说明-m mode 为新目录设置访问模式。
-p 如果父目录不存在,创建所有的父目录。
rmdir功能:用来删除已建立的目录语法:rmdir [参数选项]目录名说明:删除一个或多个空目录或空子目录,要求此用户在当前目录上具有写权限rm功能:删除文档及目录。
UNIX系统开发-sdb命令使用:源程序的显示和搜索

UNIX系统开发-sdb命令使用:源程序的显示和搜索sdb命令的使用同我们前面介绍过的mail,ftp一类工具类似,sdb也是一个命令解释程序。
也就是说,用户在sdb提示符(一个星号*)下输入sdb能够识别的命令,sdb将根据被调试的程序的具体情况给出响应。
例如,在运行myprog出错,生成core文件之后进入sdb时,sdb将给出如下的响应:$ sdb myprog12: return ((100/atoi(ValueInput))? TESTOK:! TESTOK);*sdb给出来的实际上是程序出错所在的函数,在源程序文件中的行号以及出错那一行的语句。
在sdb的使用中要注意三个“当前”概念:(1)当前文件即当前将要被执行的语句所在的那个源程序文件(2)当前函数即当前将要被执行的语句所在的那个函数(3)当前行这个概念只有在编译时加入-g选项才会有,它指的是将要被执行的那条语句。
与当前行相应,有一个行号的概念。
它指的是每条语句在程序中位于第几行。
注意行号是从文件头开始计算的,第一行的行号为1,空白行和注释也包括在内。
在用core文件进行调试时,当前行和当前函数分别被设成是程序出错时所执行的那条语句所在地行和函数(如同上面显示出来的那样)。
但如果在编译时未加-g选项,显示出来的将只有函数名和函数的地址了。
在对活动进程进行排错时,sdb将把当前函数和当前行分别设成是main()函数和main()函数的第一个可执行的语句行。
不论是哪种情况,sdb都将显示出*提示符。
在此提示符之下我们可以输入各种sdb命令,以控制程序的执行或观察变量的变化情况,等等。
在下面的几个小节中我们将分别详细讨论这些问题。
源程序的显示和搜索程序出错一般来说不只是出错的那条语句本身造成的。
事实上出现错误经常是前面或相关的代码执行了不正确的操作或少了某些必要的处理。
因此调试过程中经常要观察一下源程序中的语句,或者在程序中搜索某个符号出现在什么地方。
UNIX常用命令介绍

2.4 UNIX常用命令介绍用户对某一操作系统的认识,往往是从使用和接触操作系统开始的,而接触操作系统最常用的方法就是使用操作系统的命令。
尽管现代操作系统都对用户提供交互式的图形界面,但在使用操作系统时仍不可避免地要用到命令操作方式,这是因为图形界面的处理也是建立在命令处理的基础之上的。
有经验的人都知道,使用命令处理的效率往往会比使用图形界面处理高出很多,而可视化的图形界面主要解决的问题是提供友好交互和摆脱枯燥的命令记忆方式。
2.4.1 UNIX命令使用方法当某个用户正确地通过了系统的注册和登录后,就进入到UNIX的命令管理程序shell的第一个进程中。
shell可以完成UNIX命令的解释执行过程,它大体上可以分成两类:一类是s hell的内部命令,另一类是shell的外部命令。
对用户来讲,内、外部命令在使用方法上没有太多的差异,只是在响应时间上略有不同。
当用户发出内部命令时,系统可直接从内存中选择调用与执行。
而shell的外部命令是那些功能较强、占用空间较大的扩展命令,它们一般不包含在shell中,因此在系统启动时并不被装入内存,只是在使用时才从系统的指定存储介质中调入内存,用完后就释放所占用的内存空间。
外部命令往往功能强大,因此所占用的磁盘空间和内存空间都比较大,甚至有些外部命令实际上就是一个实用程序,它所占用的空间和处理过程的复杂度可以与一个小型系统规模相比,因此对外部命令的管理通常包含着对内、外存空间的控制和管理。
1. UNIX的命令格式使用UNIX命令的方法可以有多种,例如,可以在命令行上输入命令,或是将命令编写在批处理文件中。
无论怎样,命令的使用格式是统一的,UNIX的一般命令格式为:Command[-options][arguments]其中:Command表示UNIX命令名。
[options]表示命令的执行选项,可以取默认值。
[arg uments]表示命令的执行参数,可以默认。
UNIX操作系统命令大全

UNIX操作系统命令大全1. ls:列出当前目录中的文件和目录。
2. cd:切换当前工作目录。
3. pwd:显示当前工作目录的路径。
4. mkdir:创建一个新目录。
5. rmdir:删除一个空目录。
6. cp:复制文件或目录。
7. mv:移动或重命名文件或目录。
8. rm:删除文件或目录。
9. touch:创建一个新文件。
10. cat:连接文件并打印到标准输出设备上。
11. less:逐页显示文件内容。
12. head:显示文件的开头几行。
13. tail:显示文件的末尾几行。
14. grep:在文件中查找匹配的字符串。
15. find:从指定目录开始递归地查找文件。
16. tar:打包和压缩文件。
17. unzip:解压缩文件。
18. chmod:更改文件的权限。
19. chown:更改文件的所有者。
20. chgrp:更改文件的所属组。
21. ps:显示当前运行的进程。
22. top:动态显示系统资源使用情况。
23. kill:终止一个进程。
24. ssh:使用安全外壳协议远程登录到另一台计算机。
25. scp:通过安全外壳协议在本地计算机和远程计算机之间传输文件。
26. ping:测试与另一台计算机的网络连接。
27. ifconfig:显示和配置网络接口。
28. netstat:显示网络连接、路由表和网络接口统计信息。
29. hostname:显示或设置主机名。
30. whoami:显示当前登录的用户。
31. su:切换到另一个用户身份。
32. sudo:以超级用户的身份执行命令。
33. date:显示或设置系统日期和时间。
35. df:显示文件系统的磁盘使用情况。
36. du:显示目录或文件的磁盘使用情况。
37. tar:创建备份文件或将备份文件释放到系统中。
38. gzip:使用GNU的zip压缩程序压缩文件。
39. gunzip:解压文件。
40. zip:创建一个zip文件。
41. uname:显示系统信息。
操作系统UNIX系统及答案

UNIX系统练习题(一)单项选择题1.由于与系统的绝大局部程序都用c语言写成,因此它具有( )的特点。
A有效简练 B.易移植 c.可扩大 D.开放性2.使命令的执行结果不在屏幕上显示,而是写到另一个文件中去,这种功能称为 A.脱机输出 B.管道 c联机输出 D.输出重定向3.能把第一条命令的输出作为第二条命令的输入的功能是由( )机制实现的。
A链接 B.批处理 c.管道 D.输出重定向4.由父进程执行系统调用fork创建一个子进程,那个子进程的初始状态为( )。
A.创建状态 B.睡眠状态 c.就绪状态 D.僵死状态5.UNIX System v系统中,存储管理主要采用( )。
A.对换技术 B.页式虚拟存储 c段式存储管理 D段页式虚拟存储6.UNIX系统中在磁盘上开辟对换区作为内存的逻辑扩大,在治理对换空间时采纳了( )。
A.空闲区表 B.位示图 c.块表 D.映射图7.特别文件是指与( )有关的文件。
A.文本 B.图像 c.外围设备 D二进制代码8 UNIX对磁盘中索引节点区进展治理时,把索引节点区空闲块的块号放至( )。
A.引导块 B.超级块 c.索引节点区 D.文件存储区9 UNIX系统中把设备也当作文件对待,所有设备文件都放在( )目录中。
A./bin B./lib C./dev d./usr10.在块设备管理时,由( )为设备驱动程序提供信息. A空闲缓冲区队列 B.设备缓冲区队列 c.设备开关表 D.设备I/O请求队列(二)填空题1.UNIX是一个交互式的______操作系统,采用以全局变量为中心的______构造。
2.UNIX的系统构造可分成______和______两局部。
3.内核层是UNIX系统的核心,它实现存储治理、______ 、设备治理和______等功能,并为外壳层提供系统挪用。
4 外壳层由______、高级语言的编译和说明程序、______和系统库组成。
UNIX系统开发-sdb的启动

UNIX系统开发-sdb的启动首先来看看在哪些情况下需要对程序进行调试。
第一种情况(这是大多数用户都会碰到的),程序在运行过程中忽然跳了出来,屏幕上显示一个xxxx-core dumped消息,然后Shell提示符就又显示出来了,其中xxxx表示出错原因。
这种情况的出现一般是系统核心认为进程的执行出现了异常,如进程试图去访问一块不允许它访问的存储区域(Memory Fault,Segmentation Fault);或者扫描某个无终止符的字符串(Bus Error);或者浮点运算溢出或被0除(Arithmetic Exception),等等。
此时操作系统会把进程当时的内存映象写到当前目录下的一个名叫core的文件中。
这种情况下我们可以使用sdb来检查此core文件,以决定出错的地点以及程序执行的状态,如函数间的调用关系、变量的值,等等。
第二种情况,程序可能并没有什么异常行为,但就是怎么也得不到正确的输出结果。
这时需要在该进程运行过程中对之进行调试。
这种情况下我们可以使用sdb逐条语句地跟踪程序的执行过程,并在执行过程中检查有关变量的值的变化情况。
上述两种情况并不是绝然分开的。
实际上它们可以结合在一起使用。
例如,当我们利用core 文件对某个已终止的进程进行调试时,可以在sdb中重新启动相应程序的运行,然后对语句的执行进行一些控制。
这样我们就能够知道在出现异常之前哪个程序到底是如何动作的。
为了使sdb能够很好地对程序进行调试,在编译程序时应指示编译程序和链接程序在目标代码中加入调试用的各种信息,如程序中的变量名、函数名及其在源程序中的行号等。
我们知道,使用-g选项可以完成这一点。
如我们可以用如下命令编译前一章给出的有毛病的程序代码:$ cc -o myprog myprog.c myfunc.cmyprog.c:myfunc.c:$ ls -l myprog-rwx-xr-x 1 yxz users 4224 Sep 1 10:17 myprog$ cc -g -o myprog myprog.c myfunc.cmyprog.cmyfunc.c$ ls -l myprogtotal 26-rwxr-xr-x 1 yxz users 5404 Sep 1 10:21 myprog$这时我们会发现,新生成的myprog比不带-g 选项生成的myprog要大的多。
unix指令大全

[例子]:
chown mary file 将文件 file 的文件主改为 mary
chown 150 file 将文件 file 的UID改为150
1.14 chgrp
[语法]: chgrp [-R] 文件组 文件...
-p 删除所有已经为空的父目录
-s 当使用-p 选项时,出现错误不提示
[例子]:
rmdir /tmp/abc 删除目录 /tmp/abc
rmdir -p /tmp/a/b/c 删除目录 /tmp/a/b/c ,若目录 /tmp/a /b
及/tmp/a 空,则删除
1.6 cat
[语法]: cat [-u] [-s] [-v[-t] [-e]] 文件...
cp file1 file2 /tmp 将文件 file1 和文件 file2 拷贝到目录 /tmp 下
cp -r /tmp /mytmp 将目录 /tmp 下所有文件及其子目录拷贝至目录/mytmp
1.10 mv
[语法]: mv [-f] [-i] 文件1 [文件2...] 目标
[说明]: 将文件移动至目标,若目标是文件名,则相当于文件改名
-1 每行仅列一项
[例子]:
ls 列出当前目录下的文件
ls -al /bin 以长列表的形式列出目录 /bin 下的所有文件,包括隐藏文件
1.2 pwd
[语法]: pwd
[说明]: 本命令用于显示当前的工作目录
[例子]:
pwd 显示出当前的工作目录
1.3 cd
[语法]: cd [目录]
示,敲任意键后推出
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
UNIX系统开发-sdb命令使用:程序执行控制我们说程序调试的主要目的是观察变量的变化情况。
但如果程序就一直不停地运行直至它终止或出错时才停下来的话,将没有机会去观察任何变量。
因此,如何有效地控制程序中各语句的执行,使之在适当的时候暂停下来,待调试人员在显示或设置了某些存储单元的值之后再从停下的地方继续执行下去,是调试程序应具有的一项基本功能。
在这一节中我们就来具体介绍如何控制程序的运行。
对程序执行控制的第一个问题是设置断点。
一个断点实际上就是程序中某行语句。
当程序执行到这条语句时控制会重复返回到sdb,由此提供给用户进行其他操作,如显示变量值的机会。
1.断点的设置和删除在sdb中设置断点的方法比较多。
但基本是b命令的变种。
例如,我们可以使用如下语句在main()函数的第一个可执行行(非变量定义这类语句)设置一个断点:* main:b也可以直接用行号来设置断点。
例如,在myprog.c中,第10行是main()函数中的第一个可执行语句,则使用如下命令也能达到同样的效果:* 10b注意这是在myprog.c为当前文件的情况下进行的。
如果直接输入:* b命令,则可将当前行设成是一个断点。
但是若当前行不是一个可执行语句,那么sdb将把当前行之后的第一个可执行语句处设置一个断点。
在设置完断点之后,为了解程序中设置有哪些断点,可以使用B命令:* B0x80483f0 myprog.c:10 main+0x80x80483f7 myprog.c:11 main+0xf0x8048407 myprog.c:12 main+0xlf0x8048440 myprog.c:9 T estInput0x8048447 myprog.c:10 TestInput+ 0x70x804482 myprog.c:13 T estInput+ 0x42在设置完断点之后要将其删除,可以使用d命令。
如:* main:dsdb将把在main()函数中设置的第一个可执行行上的断点删除。
如果直接使用d命令,sdb 将逐个列出所有断点并询问用户是否删除之。
回答y断点将被删除。
使用D命令则可删除程序中设置的所有断点。
2.sdb中启动程序的运行在设置好所需的断点之后我们就可以重新启动程序的运行了。
这可以使用r命令。
如:* r 111 2BREAKPOINT process 554 function main() in myprog.c10: for(i=1;i<argc:i++)*sdb将在main()函数中设置第一个断点处停下来并显示该行的语句。
r后面给出的是传给可执行程序myprog的两个参数。
因此上述命令同在shell提示符下输入:$ myrprog 111 2是相同的。
不同的只是在sdb中程序的执行会在断点处停下来。
如果只输入* r命令,sdb使用最近一次执行调试程序时给它提供的参数来启动之。
如果想不带任何参数来重新启动程序的运行,可使用* R命令。
3.控制程序的单步或者连续执行在用r(R)命令启动程序的运行之后,sdb将在第一个断点处暂停程序的运行。
此时断点行成为当前行,但并未被执行。
此时我们可以在sdb的星号(*)提示符下输入前面已介绍过的或后面将要介绍的各种命令。
当然最重要的是显示那些关键变量的值,以了解程序的运行情况。
在这之后便可以继续程序的执行。
继续执行有两种方式。
的一种是单步方式,即逐条语句执行。
这可以使用S命令完成:* sSTEPPED process 584 function main() in myprog.c14: printf("The %dth value '%s' \tis BAD!\n",i,argv[i]);*sdb在执行完当前语句之后,将当前行后移一行并显示出其代码。
对于用户自定义的函数调用,S命令并不将其当成是一条语句,此时它将指示sdb进入该函数(使之成为当前函数)。
如我们可以接着上面输入下列命令:* sSTEPPED process 584 function main() in myprog.c11: if(TestInput(argv[i])== TESTOK)* sBREAKPOINT process 594 function main() in myprog.c11: if(TestInput(argv[i])==TESTOK)* sBREAKPOINT process 584 function T estInput() in myfunc.c9: {while (* ValueInput)}* s也能让sdb将用户自定义的函数调用,当成是一条普通语句而不进入此函数的定义。
此时可以在那些包含有用户自定义函数调用的行,使用S命令以执行之。
s 和S命令都可以接收一个指明待执行的语句数目的参数。
例如:* s 2使sdb执行当前行及其下那行语句,然后当前行之下的第2行将成为新的当前行。
注意当使用s 或S时,如果sdb遇上一个未加-g选项编译的用户自定义函数,那么执行将继续直到一个带-g 选项编译的函数为止。
控制程序执行的第二种是使用c或C命令。
一个最简单的c命令将使sdb从当前行把程序执行到下一个断点处。
在c命令中还可以临时设置“断点”。
例如:* 8c将使sdb在第8行上设置一个断点并使程序从当前行执行至该断点处后停下来,然后将此断点自动删除并等待用户输入其他命令。
在c命令中还可以指定在继续执行时后面第几个断点处停下来。
例如:* c 2将使sdb从当前行开始执行,直到当前行之后的第2个断点为止。
一般的:* c命令实际上相当于:* c 1C命令的作用及用法同c基本上是相同的。
只不过此时sdb将进程收到的终止信号传给该进程进行处理。
这对于调试有软中断处理的进程是很有用的。
但sdb并不是将进程所收到的所有信号都传送给进程进行处理。
要传递的信号可在sdb的命令行中用-s选项指定。
我们可以用g命令来告诉sdb在给定的行开始继续程序的执行:* 6g此命令使sdb在当前文件的第6行处恢复执行。
而:* 6g2使sdb在当前文件的第6行恢复执行并跳过两个断点。
但在使用g命令时必须小心。
如果此命令跳过了那些必须得初始化语句,或者进程的执行被恢复到某个并不终止进程的函数中,此时都将会是程序的执行出现人为的差错。
一般而言,除非能够确信所跳过的代码段是不正确的代码,不要轻易使用g命令。
4 关联命令我们可以告诉sdb在使用到某种情况下暂停下来,完成某些操作之后继续执行。
例如:* 7b t; i/;c将使得sdb在当前文件的第7行设置一个断点,然后每当遇到该断点时都显示函数调用栈(t)、变量i的值(i/),并继续程序的执行(c)。
上述命令的一种变化形式是a(Announce命令)。
例如:* FunctionName:a将使得sdb在程序执行过程中每当函数FunctionName被调用时即显示其函数名和参数值。
而命令:* FunctionName:6a将使得sdb在函数FunctionName中的第6行每次被执行时都将其显示出来。
5.函数调用sdb能够调用程序中用户自定义的任何函数。
这种功能对于下面两种情况可能比较有用:在需要用各种不同的参数对函数进行测试。
用用户自己定义的一个函数来显示程序中的某些数据。
不论是何种情况,我们均可以用如下命令来进行函数调用:* FunctionName(Arg1,Arg2,....)或* FunctionName(Arg1,Arg2,....)/m在第一种用法下,sdb只是简单地执行指定的函数。
在第二种用法下,sdb将在执行指定的函数之后显示返回值。
此值一般将按十进制方式显示,除非指定了另外的显示格式。
提供给函数的参数可以是寄存器名、整数、浮点数、字符、字符串常量或是其他局部当前函数,或者是当前函数可以访问的变量。
6.变量的监视sdb提供了一种被成为“观察点”(Watch)的机制。
借此机制,我们可以监视变量值得变化或某些地址的内容的变化。
例如:* i $m可用于设置对某个变量的观察点。
此处变量i为被监视的变量。
而用:* 0x00400000:m则可将地址0x00400000 处设置成观察点,而0x00400000将成为被监视的地址。
在设置了观察点之后,sdb会同处理S命令一样开始程序的单步执行,并在变量的值或指定地址单元的内容被改变时停止程序的执行。
由于变量值的改变或地址内容的变化,或者其他什么原因而使程序的执行中止,包括因为遇到断点而使程序停止的情形,都将使得所设置的观察点被sdb自动删掉。
被观察的变量必须是当前函数的局部变量或者是当前函数所能够访问的变量其他命令除了上面介绍的五类主要命令之外,sdb还支持其他一些命令。
使用这些命令,可以完成其他一些辅助性的工作。
分别介绍如下。
. !Shell Command此命令可以使sdb去执行指定的Shell Command。
这里Shell Command是一个合法命令。
例如可以输入:* ! ls -lsdb将执行指定的ls -l 命令,并将其输出显示出来。
使用:* ! sh能够生成一个新的Shell进程。
在此新的Shell中可以完成某些工作,然后用exit命令返回到sdb中。
<FileName指示sdb从文件FileName中读取sdb调试命令,并且逐个执行之。
"SomeString指示sdb显示出某个字符串。
常用此命令给出某些提示信息,k此命令将使当前对程序的调试终止,之后仍可用r命令重新启动被调试的程序。
如:* k1111:killed*这里1111是被调试进程的进程号。
* q此命令将使sdb停止其自身的运行而返回至原Shell提示符下。
在调试完程序之后一般都要使用此命令。