云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > gdb手册

gdb手册

  • 62 次阅读
  • 3 次下载
  • 2025/5/4 7:51:54

目录、终端类型以及程序运行的搜索目录这些信息。通常你用shell设置的环境变量会被所有你运行的其他程序所继承。调试时,不需要反复启动GDB就可以使用一个修改的环境变量试着运行程序,是很有用的。

path directory

在传递给程序的PATH环境变量(可执行程序的搜索路径)前,添加directory。GDB所使用的PATH值不会被更改。可以指定若干的目录名,使用空格或系统相关的分隔符(UNIX上是“:”,MS-DOS和MS-Windows上是“;”)分隔它们。如果directory已经在PATH中了,就把它移到前面,以使它可以被立即搜索到。 可以使用字符串“$cwd”,在GDB搜索路径时,引用当前工作目录。如果使用“.”代替的话,它引用的是由执行path命令指定的目录。在添加directory到搜索路径之前,GDB在directory参数中替换“.”(使用当前路径)。

show path

显示可执行文件的搜索路径列表(PATH环境变量)。

show environment [varname]

打印程序启动时惯于它的环境变量varname的值。要是没有给出varname,就打印所有惯于程序的环境变量的名和它的值。可以用env简写environment。

set environment varname [=value]

给环境变量varname赋值为value。变量值的更改仅针对于程序,不会影响GDB本身。value可以是任何字符串——环境变量值只能是字符串,对它的任何解释都由程序本身提供。value参数是可选的。如果去除的话,变量会被赋予一个null值。 例如这个命令:

set env USER = foo

告诉GDB,在随后的run时,它的用户是一个名叫“foo”的(“=”前后使用的空格是为了清晰,实际上是不需要的)。

unset environment varname

从传递给程序的环境中移除变量varname。这与“set environment varname=”不同,它是从环境中移出变量,而不是给它赋一个空值。

警告:在UNIX系统中,如果有SHELL环境变量的话,GDB使用的是它指定的shell(没有的话使用/bin/sh)。如果你的SHELL环境变量指定了一个运行初始化文件(如C-Shell的“.cshrc”或者是BASH的“.bashrc”)的shell,你设置在那个文件中的任何变量,都会对你的程序有所影响。你可能希望把这些环境变量的设置移到仅在你注册时运行的文件中去,这样的文件有“.login”或“.profile”。

4.5 程序的工作目录

每次使用run启动的程序,都GDB的当前工作目录继承为它的工作目录。GDB的工作目录最初是继承自它的父进程(通常是shell),不过,你可以在GDB中使用cd命令指定一个新的工作目录。

GDB的工作目录也担当着GDB操作的指定文件命令的默认目录。参见指定文件的命令一节。

cd directory

设置GDB的工作目录为directory。

pwd

打印GDB的当前工作目录。

找到正被调试的进程的当前工作目录,通常是做不到的(因为一个程序可以在它运行的时候改变它的目录)。如果你工作在GDB可以被配置为带有“/proc”支持的系统上的话,你可以利用info proc命令(见18.1.3 SVR4进程信息一节)找到debuggee的当前工作目录。

4.6 程序的输入输出

默认情况下,GDB下运行的程序作输入输出的终端,与GDB所使用的是相同的。GDB把终端转换为它自己的终端方式与你交互,不过,它记录你的应用程序所使用的终端方式,当你继续运行你的程序时,它再切换回来。

info terminal

显示由GDB记录下来的程序所使用的终端模式的信息。

可以使用run命令,利用shell的重定向,重定向程序的输入和/或输出。

启动程序,驱使他的输出到文件“outfile”。

另外一种指定程序在何处做输入输出的方式是使用tty命令。这个命令接受一个作为参数的文件名,并使这个文件成为之后run命令的默认重定向目标。它也为子进程、之后的run命令重置控制终端。例如:

指示后续用run命令启动的进程默认在终端“/dev/ttyb”上作输入输出,并且拿这个作为它们的控制终端。

在run中明确的重定向,优先于tty对输入/输出设备的影响,但是并不对控制终端有影响。

当使用tty命令或在run命令中重定向输入时,只有程序的输入会受到影响。GDB的输入依然来自你的终端。tty是set inferior-tty的别名。

可以使用show inferior-tty命令告诉GDB,显示将来程序运行会被使用的终端的名字。

set inferior-tty /dev/ttyb

设置正被调试的程序的tty为/dev/ttyb。 tty /dev/ttyb run > outfile

show inferior-tty

显示正被调试的程序的当前tty。

4.7 调试某个已运行的进程

attached process-id

这个命令附着到一个正在GDB以外运行的进程。(info文件显示活动目标)这个命令带有一个process-id参数。要找到某个UNIX进程的process-id,通常的方式是使用ps工具,或者使用“jobs –l”shell命令。

attached命令执行之后,第二次按RET的话,是不会被重复的。

为了使用attached,程序必须运行在一个支持进程的环境下。例如:对于在缺乏操作的bare-board目标上的程序,attached是不会工作的。也必须得有发送信号的权限。

当使用attached的时候,调试器首先定位当前目录中正运行在进程中的程序,然后(如果没有发现这个程序)查看元文件搜索路径(参见指定源文件目录一节)。你也可以利用file命令装载程序。参见指定文件的命令一节。

准备好要调试的指定进程后,所做的第一件事就是停止进程。检查与修改被附着的进程,可以使用平常使用run启动进程时能够用到的所有命令。可以插入断点;可以单步调试并继续;可以修改存储器。如果你愿意让进程继续运行的话,你可以在将GDB附着到进程之后使用continue命令。

detach

当对被附着的进程的调试完成时,可以使用detach命令,把它从GDB的控制下释放出来。分离进程而继续执行。detach命令之后,那个进程与GDB再一次变得完全独立,并且准备附着另外一个进程,或者使用run命令启动一个。detach命令执行之后,再按RET的话,是不会被重复的。

当已附着到一个进程时,退出GDB或使用run命令,会杀掉那个进程。默认情况下,

搜索更多关于: gdb手册 的文档
  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

目录、终端类型以及程序运行的搜索目录这些信息。通常你用shell设置的环境变量会被所有你运行的其他程序所继承。调试时,不需要反复启动GDB就可以使用一个修改的环境变量试着运行程序,是很有用的。 path directory 在传递给程序的PATH环境变量(可执行程序的搜索路径)前,添加directory。GDB所使用的PATH值不会被更改。可以指定若干的目录名,使用空格或系统相关的分隔符(UNIX上是“:”,MS-DOS和MS-Windows上是“;”)分隔它们。如果directory已经在PATH中了,就把它移到前面,以使它可以被立即搜索到。 可以使用字符串“$cwd”,在GDB搜索路径时,引用当前工作目录。如果使用“.”代替的话,它引用的是由执行path命令指定的目录。在添加directory到搜索路径之前,GDB在directory参

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com