在VIM中的嵌入式软件调试
其次,编辑文件/etc/vim/macros/gdb_mappings.vim。主要修改和添加的部分为:
a. 添加调试器转换函数,并设置转换开关为大写“E”键(Shift+E实现):
let s:emOS_k = 1
nmap silent> E :call SID>emOS()CR>
function! s:emOS()
if s:emOS_k
let s:emOS_k = 0
exec ":!ln sf ~/buildtools/armlinux/bin/armlinuxgdb ~/buildtools/armlinux/bin/gdb"
echohl ErrorMsg
echo "NOW! Gdb is ready for Embedded System !!!"
echohl None
else
let s:emOS_k = 1
exec ":!ln sf /usr/bin/gdbpc ~/buildtools/armlinux/bin/gdb"
echohl ErrorMsg
echo "Gdb is ready for PC,, Now"
echohl None
endif
Endfunction
b. 在语句if s:gdb_k行下添加代码:
nmap F8> :bel 25vsplit gdbvariablesCR>
nunmap E
即在进入调试状态后,屏蔽掉调试器转换快捷键E,并设置快捷键F8来显示变量值监测窗口。
c. 在let s:gdb_k = 1行下添加代码:
exec ":!ln sf /usr/bin/gdbpc ~/buildtools/armlinux/bin/gdb"
nmap silent> E :call SID>emOS()CR>
即在退出调试状态后,还原gdb命令为gdbpc的调用,并还原“E”的调试器转换开关作用。
d. 在/etc/vim/vimrc中添写语句:
run macros/gdb_mappings.vim
使得启动vim后,便会在vim中启动对gdb进行调用的快捷键映射。
至于在gdb_mappings.vim中具体设定的其他快捷键,由读者自己分析或设定即可。
2.5 在VIM中对嵌入式软件进行调试
下面设定目标板上的嵌入式软件调试时所用的快捷键: E为调试器转换开关;F9为进入调试模式;F8为开启变量监视窗口;空格键为开启命令行输入窗口;调试模式为PC通过超级终端对嵌入式目标板进行输入输出,Ubuntu8.10通过TCP/IP方式对嵌入式软件进行调试;PC机Linux IP为222.31.51.147;目标板IP为222.31.51.180;调试连接端口为1234。
① 用VIM打开~/test/test.c,运行命令“:make testem”,将生成的testem文件拷贝到嵌入式平台的文件系统下,并在嵌入式平台运行命令,指定等待连接的交叉调试器地址、连接端口以及要调试的嵌入式程序:
gdbserver 222.31.51.147:1234 testem
嵌入式端会出现如下的类似提示信息,进入等待连接状态:
Process testem created; pid = 801
Listening on port 1234
② 按下大写“E”键(Shift+按键E),根据VIM窗口下方的提示信息,确定所选调试器。
提示信息为“NOW! Gdb is ready for Embedded System!!!”或者“Gdb is ready for PC,, Now”。
③ 按下F9,在出现的命令窗口输入命令“file testem”后,会在VIM中的另一个窗口出现以下类似的调试信息:
GNU gdb 6.8
Copyright (C) 2008 Free Software Foundation, Inc.
……
This GDB was configured as "host=i686pclinuxgnu target=armlinux".
(gdb) file testem
Reading symbols from /home/popeye/test/testem…done.
(gdb)
可以发现,在VIM中已经成功调用交叉调试器armlinuxgdb了。以后的调试命令,都是通过先按下空格键,调出命令窗口,输入命令,回车后传递给调试器。
评论