Linux 版 (精华区)

发信人: netiscpu (说不如做), 信区: Unix
标  题: GDB(10) --工作路径
发信站: 紫 丁 香 (Sat Jun 13 22:14:05 1998), 转信

【 以下文字转载自 cnlinux 讨论区 】
【 原文由 System_Killer@bbs.ustc.edu.cn 所发表 】
工作路径
================================
   当你每次用'run'命令来运行你的程序时,你的程序将继承gdb的
当前工作目录。而gdb的工作目录是从它的父进程继承而来的(一般是
shell)。但你可以自己使用'cd'命令指定工作目录。
   gdb的工作目录就是它去寻找某些文件或信息的途径。
`cd DIRECTORY'
     把gdb的工作目录设为DIRECTORY
`pwd'
     打印输出当前目录。
你程序的输入/输出
===============================
   缺省时,你的程序的输入/输出和gdb的输入/输出使用同一个终端。
gdb在它自己和你的程序之间切换来和你交互,但这会引起混乱。
`info terminal'
     显示你当前所使用的终端的类型信息。
     你可以把你程序的输入/输出重定向。
例如:
     run > outfile
运行你的程序并把你程序的标准输出写入文件outfile中。
   另一个为你程序指定输入/输出的方法是使用'tty'命令,这个命令
接受一个文件名作为参量把这个文件作为以后使用'run'命令的缺省命
令文件。它还重新为子进程设置控制终端。
例如:
     tty /dev/ttyb
指定以后用'run'命令启动的进程使用终端'/dev/ttyb'作为程序的输入
/输出,而且把这个终端设为你进程的控制终端。
   一个清楚的使用'run'命令的重定向将重新设置'tty'所设置的内容
,但不影响控制终端。   当你使用'tty'命令或在'run'命令中对输入
/输出进行重定向时,只有你当前调试的程序的输入/输出被改变了,
并不会影响到别的程序。
调试一个已经运行的程序:
====================================

`attach PROCESS-ID'
     这个命令把一个已经运行的进程(在gdb外启动)连接入gdb,以便
调试。PROCESS-ID是进程号。(UNIX中使用'ps'或'jobs -l'来查看进程)
     'attach'一般不重复。(当你打了一个以上的回车时)
   当然要使用'attach'命令的话,你的操作系统环境必须支持进程。
另外你还要有向此进程发信号的权力。
   当使用'attach'命令时,你应该先使用'file'命令来指定进程所
联系的程序源代码和符号表。   当gdb接到'attach'命令后第一件
事就是停止进程的运行,你可以使用所有gdb的命令来调试一个“连接”
的进程,就象你用'run'命令在gdb中启动它一样。如果你要进程继续运
行,使用'continue'或'c'命令就行了。
`detach'
   当你结束调试后可以使用此命令来断开进程和gdb的连接。(解除gdb
对它的控制)在这个命令执行后进程将继续执行。
   如果你在用'attach'连接一个进程后退出了gdb,或使用'run'命令执
行了另一个进程,这个被'attach'的进程将被kill掉。但缺省时,gdb会
要求你确认你是否要退出或执行一个新的进程。

--
※ 来源: 中国科大BBS站 [bbs.ustc.edu.cn]
--
※ 转载:.紫 丁 香 bbs.hit.edu.cn.[FROM: mtlab.hit.edu.cn]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:3.767毫秒