⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 00000003.htm

📁 一份很好的linux入门资料
💻 HTM
字号:
<HTML><HEAD>  <TITLE>BBS水木清华站∶精华区</TITLE></HEAD><BODY><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER>发信人:&nbsp;TJB&nbsp;(老六),&nbsp;信区:&nbsp;Linux&nbsp;<BR>标&nbsp;&nbsp;题:&nbsp;GDB&nbsp;(3)&nbsp;Part&nbsp;One&nbsp;<BR>发信站:&nbsp;BBS&nbsp;水木调试站&nbsp;(Tue&nbsp;Jun&nbsp;&nbsp;2&nbsp;15:59:45&nbsp;1998)&nbsp;<BR>&nbsp;<BR>发&nbsp;信&nbsp;人:System_Killer(大家一起来发呆)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;信区名称:Linux[4621]&nbsp;<BR>信件提要:gdb(三)&nbsp;<BR>原发信站:中国科大BBS站(Sun,&nbsp;29&nbsp;Mar&nbsp;1998&nbsp;14:50:47)&nbsp;<BR>&nbsp;<BR>运行GDB(一些详细的说明):&nbsp;<BR>&nbsp;<BR>&nbsp;&nbsp;前面已经提到过如何运行GDB了,现在让我们来看一些更有趣的东西。你可以在运行&nbsp;<BR>GDB时通过许多命令行参数指定大量的参数和选项,通过这个你可以在一开始就设置好&nbsp;<BR>程序运行的环境。&nbsp;<BR>&nbsp;&nbsp;这里将要描述的命令行参数覆盖了大多数的情况,事实上在一定环境下有的并没有&nbsp;<BR>什么大用处。最通常的命令就是使用一个参数:&nbsp;<BR>&nbsp;$gdb&nbsp;&lt;可执行文档名&gt;&nbsp;<BR>你还可以同时为你的执行文件指定一个core文件:&nbsp;<BR>&nbsp;$gdb&nbsp;&lt;可执行文件名&gt;&nbsp;core&nbsp;<BR>你也可以为你要执行的文件指定一个进程号:&nbsp;<BR>&nbsp;$gdb&nbsp;&lt;可执行文件名&gt;&nbsp;&lt;进程号&gt;&nbsp;如:&amp;gdb&nbsp;os&nbsp;1234将使gdb与进程1234相联系(attach)&nbsp;<BR>除非你还有一个文件叫1234的。gdb首先检查一个core文件。&nbsp;<BR>如果你是使用一个远程终端进行远程调试的话,那如果你的终端不支持的话,你将无法&nbsp;<BR>使用第二个参数甚至没有core&nbsp;dump。如果你觉得开头的提示信息比较碍眼的话,你可以&nbsp;<BR>用gdb&nbsp;-silent。你还可以用命令行参数更加详细的控制GDB的行为。&nbsp;<BR>打入gdb&nbsp;-help或-h&nbsp;可以得到这方面的提示。所有的参数都被按照排列的顺序传给gdb&nbsp;<BR>除非你用了-x参数。&nbsp;<BR>&nbsp;&nbsp;当gdb开始运行时,它把任何一个不带选项前缀的参数都当作为一个可执行文件或core&nbsp;<BR>文件(或进程号)。就象在前面加了-se或-c选项。gdb把第一个前面没有选项说明的参数&nbsp;<BR>看作前面加了-se&nbsp;选项,而第二个(如果有的话)看作是跟着-c选项后面的。&nbsp;<BR>&nbsp;&nbsp;许多选项有缩写,用gdb&nbsp;-h可以看到。在gdb中你也可以任意的把选项名掐头去尾,只&nbsp;<BR>要保证gdb能判断唯一的一个参数就行。&nbsp;<BR>在这里我们说明一些最常用的参数选项&nbsp;<BR>-symbols&nbsp;&lt;文件名&gt;(-s&nbsp;&lt;文件名&gt;)------从&lt;文件名&gt;中读去符号。&nbsp;<BR>-exec&nbsp;&lt;文件名&gt;(-e&nbsp;&lt;文件名&gt;)----在合适的时候执行&lt;文件名&gt;来做用正确的数据与core&nbsp;<BR>&nbsp;dump的作比较。&nbsp;<BR>-se&nbsp;&lt;文件名&gt;------从&lt;文件名&gt;中读取符号并把它作为可执行文件。&nbsp;<BR>-core&nbsp;&lt;文件名&gt;(-c&nbsp;&lt;文件名&gt;)--指定&lt;文件名&gt;为一个core&nbsp;dump&nbsp;文件。&nbsp;<BR>-c&nbsp;&lt;数字&gt;----连接到进程号为&lt;数字&gt;,与attach命令相似。&nbsp;<BR>-command&nbsp;&lt;文件名&gt;&nbsp;<BR>-x&nbsp;&lt;文件名&gt;-----执行gdb命令,在&lt;文件名&gt;指定的文件中存放着一序列的gdb命令,就&nbsp;<BR>象一个批处理。&nbsp;<BR>-directory(-d)&nbsp;&lt;路径&gt;---指定路径。把&lt;路径&gt;加入到搜索原文件的路径中。&nbsp;<BR>-m&nbsp;<BR>-mapped----&nbsp;<BR>&nbsp;&nbsp;&nbsp;注意这个命令不是在所有的系统上都能用。如果你可以通过mmap系统调用来获得内存&nbsp;<BR>映象文件,你可以用这个命令来使gdb把你当前文件里的符号写入一个文件中,这个文件&nbsp;<BR>将存放在你的当前路径中。如果你调试的程序叫/temp/fred那么map文件就叫&nbsp;<BR>./fred.syms这样当你以后再调试这个程序时,gdb会认识到这个文件的存在,从而从这&nbsp;<BR>个文件中读取符号,而不是从可执行文件中读取。.syms与主机有关不能共享。&nbsp;<BR>-r&nbsp;<BR>-readnow---马上从符号文件中读取整个符号表,而不是使用缺省的。缺省的符号表是&nbsp;<BR>调入一部分符号,当需要时再读入一部分。这会使开始进入gdb慢一些,但可以加快以后&nbsp;<BR>的调试速度。&nbsp;<BR>&nbsp;<BR>&nbsp;-m和-r一般在一起使用来建立.syms文件&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>接下来再谈谈模式的设置(请听下回分解&nbsp;:-))&nbsp;<BR>附:在gdb文档里使用的调试例子我找到了在minix下有这个程序,叫m4有兴趣的&nbsp;<BR>可以自己去看看&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:&nbsp;中国科大BBS站&nbsp;[bbs.ustc.edu.cn]&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>&nbsp;<BR>--&nbsp;<BR>※&nbsp;来源:·BBS&nbsp;水木调试站&nbsp;Leeward.lib.tsinghua.edu.cn·[FROM:&nbsp;202.200.37.100]&nbsp;<BR><CENTER><H1>BBS水木清华站∶精华区</H1></CENTER></BODY></HTML>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -