赞
踩
输入'gdb'来开始,输入'quit'或者快捷键Ctrl-d来结束
目录
通过运行gdb程序来运行gdb,一旦开始了gdb就从终端读取命令,直到你告诉它离开为止
还可以使用各种参数和选项运行 gdb,以便在一开始就指定更多的调试环境
在这里提到命令行选项是因为涉及到很多情况,在有些情况下,某命令可能会很高效,但是有时候
不能使用。
启动gdb最常用的一个方法就是使用一个参数,指定一个可执行程序 :
gdb program
你也能够以一个可执行程序和一个指定的core文件 :
gdb program core
同样的,如果你想要调试运行中的进程,指定进程的ID作为第二参数或者使用命令-p:
gdb program 1234
gdb -p 1234
然后gdb就会附加到进程1234,用-p命令能够忽略程序的文件名
利用第二命令行参数需要一个十分完整的操作系统。当你使用gdb作为一个连接了裸板(bare board)的远程调试器,这时没有进程之说,并且经常没有办法得到核心转存(core dump)。如果无法依附或者读取核心转存gdb将会警告你。
你可以选择让 gdb 在可执行文件之后使用 --args 将任何参数传递给下级 :
gdb --args gcc -02 -c foo.c
这会使得gdb去调试gcc,并且将gcc的命令行参数设置为'-02 -c foo.c'.
通过指定 --silent (或 -q/--quiet),可以运行 gdb 而不打印 GDB 的前端材料
gdb --silent
你也能够通过使用命令行选项来更进一步的控制gdb的启动方式,GDB可以提醒你可用的选项。
gdb -help (缩写为'gdb -h')
展示了所有可用的命令和简洁的它们的用途描述。提供的所有选项和命令行参数都按顺序处理,使用'-x'选项时顺序会有所不同
quit[expression](缩写为q)
要退出 GDB,使用quit命令(缩写为 q),或键入文件结束符(通常是 Ctrl-d)。 如果没有提供表达式,GDB 将正常终止; 否则它将使用expression的结果作为错误代码终止。
中断(通常是 Ctrl-c)不会从 GDB 退出,而是终止任何正在进行的 GDB 命令的操作并返回到 GDB 命令级别。 任何时候输入中断字符都是安全的,因为 GDB 不允许它在安全的时候生效。
如果你一直在使用 GDB 来控制一个附加的进程或设备,你可以使用 detach 命令释放它
如果你需要在调试期间偶尔执行 shell 命令,则无需离开或挂起 GDB; 你可以使用shell命令
shell command-string
!command-string
调用标准 shell 来执行命令字符串(注意!和命令字符串之间没有空格),在 GNU 和 Unix 系统上,环境变量 SHELL(如果存在)决定运行哪个 shell,否则GDB将使用默认shell(/bin/sh on GNU and Unix systems, cmd.exe on MS-Windows, COMMAND.COM on MS-DOS, etc.)
在开发环境中经常需要实用程序 make。 因此不必在 GDB 中为此使用 shell 命令。
make make-args
执行带有指定参数的make程序,也可以等价于('shell make make-args')
pipe[command]|shell_command
|[command]|shell_command
pipe -d delim command delim shell_command
| -d delim command delim shell_command
执行command并且将它的结果发送到shell_command(注意|周围都没有空格)
如果没有command被提供,那么最近执行的command将会被重复。
一方命令包含 |,选项 -d delim 可用于指定备用分隔符字符串 delim,将command与 shell_command 分开。
conbenience variables $_shell_exitcode 和 $_shell_exitsignal 可用于检查由 shell、make、pipe 和 | 启动的最后一个 shell 命令的退出状态。
你可能想把gdb的输出存到一个文件,下面是几个命令可以使得gdb来保存
set logging on 能够记录
set logging off 不能记录
set logging file file 改变当前记录文件的名字,默认记录文件为gdb.txt
set logging overwrite [on|off] 默认情况下,gdb会附加记录文件。如果你想改写记录文件
set logging redirect [on|off] 默认情况下,gdb输出既会去到终端又会到记录文件,如果你想要输出只到记录文件的话使用这个
set logging debugredirecct [on|off] 默认情况下,gdb调试输出既会去到终端又会到记录文件,如果你想要调试输出只到记录文件的话使用这个
show logging 显示记录设置的当前值
你也能够重定向一个gdb命令到shell命令
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。