分类: LINUX
2012-03-30 17:22:32
GDB每次启动时会打印copyright信息。使用gdb -q启动GDB可以禁这个信息。使用shell的别名机制,alias gdbq="gdb -q",每次启动gdbq就可以启动不带copyright信息的GDB。
在GDB里使用set prompt命令可以设置GDB的提示,比如“set prompt gdb>”,这样提示就不再是默认的(gdb)了。可以把这个设置放入.gdbinit文件里。同样可以使用逃脱字符\033(在终端里是"/e["和"m")来设置颜色,比如“set prompt \033[01;34mgdb> ”
启动被调试程序:
run命令启动程序。
run arg1 arg2 ...可以给程序传入参数。
set args设置下一次run命令执行时传入程序的参数。比如
set args arg1 arg2...
run
等同于run arg1 arg2 ...
程序已经运行时(并可能中断在某个断点上),可以使用kill来杀死程序,这样可以重新运行。
也可以直接执行run,GDB会提示你是否重新启动程序。
tty命令可以把被调试程序的输出定位到另一个终端,这样可以和GDB的输出分离。
tommy:~$ tty
/dev/pts/0
tommy:~/tmp$ gdb a.out
Reading symbols from /home/tommy/tmp/a.out...(no debugging symbols found)...done.
gdb> tty /dev/pts/1
gdb> run
然而在ubuntu上不能这样做……在目标终端(/dev/pts/1)上会出现错误:warning: GDB: Failed to set controlling terminal: 不允许的操作,即使是使用超级用户权限。这可能是一个ubuntu的bug。