网站地图    收藏   

主页 > 系统 > linux系统 >

vimgdb调试时的常见问题及解决 - Linux操作系统:

来源:自学PHP网    时间:2015-04-14 11:12 作者: 阅读:

[导读] vimgdb调试时的常见问题及解决[ 问题一: 运行GDB命令时提示unable to read from GDB pseudo tty? ]有读者在试图执行GDB命令时,出现上面的提示。 www.2cto.com 出现这个问题是由于没有正确设置gdbp.....

vimgdb调试时的常见问题及解决
 
[ 问题一: 运行GDB命令时提示"unable to read from GDB pseudo tty"? ]
 
有读者在试图执行GDB命令时,出现上面的提示。
  www.2cto.com  
出现这个问题是由于没有正确设置gdbprg变量。使用下面的命令设置一下GDB程序的位置即可解决此问题: 
 
:set gdbprg=/path/to/gdb 
 
请把上面的/path/to/gdb替换成你计算机中GDB程序所在的路径。你可以把这句话加到你的vimrc中,这样每次启动vi时会自动设置此变量。
 
[ 问题二: 提示"GDB busy: command discarded, please try again"? ]
 
当你的程序需要用scanf()或者getchar()这类函数读取用户输入时,你可能会看到过这样的提示:  www.2cto.com  
 
[quote]
 
GDB busy: command discarded, please try again 
 
[/quote]
 
出现这个提示,说明你的GDB正在等待用户输入,所以无法响应你所输入的其它GDB命令。
 
在使用vimgdb时,如果你的程序需要读取用户输入,你必须通过GDB的tty命令或run来重定向程序的标准输入。
 
首先,你打开一个终端(可以是xterm/rxvt/urxvt/putty/…),在此终端内输入命令tty:   www.2cto.com  
 
$ tty/dev/pts/17 
 
这条命令用来显示此终端所使用的设备文件名。获得了这个设备文件名后,你就可以重定向程序的标准输入输出到这个终端,在GDB中输入下面的命令: 
 
tty /dev/pts/17 
 
执行完这条命令后,程序的标准输入/输出就被重定向到/dev/pts/17了,这样,当执行到scanf()或getchar()函数时,切换到那个终端输入指定参数,然后回车,程序就会继续向下执行。
 
[ 问题三: vimgdb可以在windows下使用吗? ]
 
vimgdb不能在windows下使用。不过你可以用作者提供的Clewn或Pyclewn。这两个程序可以在Windows的Vim/Gvim中使用。
  www.2cto.com  
[ 问题四: 按空格后vimgdb的命令窗口没有弹出来? ]
 
首先确保vimgdb的按键定义文件存在。执行下面的命令: 
 
:set runtimepath? 
 
检查这条命令所列出的所有目录,如果任一目录中包含macros/gdb_mappings.vim文件,说明你的按键映射文件已经存在。如果你没有找到该文件,到vimgdb目录中找到这个命令,拷贝到上述任意一个目录中。
 
接下来用下面的命令加载vimgdb的键绑定: 
 
:run macros/gdb_mappings.vim 
 
现在,你应该可以使用vimgdb所定义的快捷键了。
 

自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习

京ICP备14009008号-1@版权所有www.zixuephp.com

网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com

添加评论