Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1745891
  • 博文数量: 438
  • 博客积分: 9799
  • 博客等级: 中将
  • 技术积分: 6092
  • 用 户 组: 普通用户
  • 注册时间: 2012-03-25 17:25
文章分类

全部博文(438)

文章存档

2019年(1)

2013年(8)

2012年(429)

分类: LINUX

2012-03-30 17:22:32

GDB启动时会载入.gdbinit文件。这个文件里包含比如“set listsize”之类的命令,GDB启动时会执行它们。GDB首先会在主目录下找,找不到则会在启动GDB的当前目录里找。

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。


阅读(3849) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~