set args 10 20 30 40 50
show args 命令可以查看设置好的运行参数。
运行环境
path 可设定程序的运行路径。
show paths 查看程序的运行路径。
set environment varname [=value] 设置环境变量。如:
set env USER=hchen
show environment [varname] 查看环境变量。
工作目录
cd 相当于shell的cd命令。
pwd 显示当前的所在目录。
程序的输入输出
info terminal 显示程序用到的终端的模式。
使用重定向控制程序输出。如:
run > outfile
tty命令可以指写输入输出的终端设备。如:
tty /dev/ttyb
4.1.4 调试已运行的程序
调试已经运行的程序有两种方法:
●在Linux下用ps(第一章已经对ps作了介绍)查看正在运行的程序的PID(进程ID),然后用gdb PID格式挂接正在运行的程序。
●先用gdb 关联上源代码,并进行gdb,在gdb中用attach命令来挂接进程的PID,并用detach来取消挂接的进程。
4.1.5 暂停/恢复程序运行
调试程序中,暂停程序运行是必需的,gdb可以方便地暂停程序的运行。可以设置程序在哪行停住,在什么条件下停住,在收到什么信号时停往等,以便于用户查看运行时的变量,以及运行时的流程。
当进程被gdb停住时,可以使用info program 来查看程序是否在运行、进程号、被暂停的原因。
在gdb中,有以下几种暂停方式:断点(BreakPoint)、观察点(WatchPoint)、捕捉点(CatchPoint)、信号(Signals)及线程停止(Thread Stops)。
如果要恢复程序运行,可以使用c或是continue命令。
设置断点(BreakPoint)
用break命令来设置断点。有下面几种设置断点的方法:
break
在进入指定函数时停住。C++中可以使用class::function或function(type,type)格式来指定函数名。
break
在指定行号停住。
break +offset
break -offset
在当前行号的前面或后面的offset行停住。offiset为自然数。
break filename:linenum
在源文件filename的linenum行处停住。
break filename:function
在源文件filename的function函数的入口处停住。
break *address
在程序运行的内存地址处停住。
break
该命令没有参数时,表示在下一条指令处停住。
break … if
condition表示条件,在条件成立时停住。比如在循环体中,可以设置break if i=100,表示当i为100时停住程序。
查看断点时,可使用info命令,如下所示(注:n表示断点号):
info breakpoints [n]
info break [n]
设置观察点(WatchPoint)
观察点一般用来观察某个表达式(变量也是一种表达式)的值是否变化了。如果有变化,马上停住程序。有下面的几种方法来设置观察点:
watch
为表达式(变量)expr设置一个观察点。一旦表达式值有变化时,马上停住程序。
rwatch
当表达式(变量)expr被读时,停住程序。
awatch
当表达式(变量)的值被读或被写时,停住程序。
info watchpoints
列出当前设置的所有观察点。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-40594-13.html
有趣