这一篇介绍eSpeak1.06源码的编译调试及基本框架。
上篇详细说明了eSpeak的调试环境的搭建,调试则和一般的gdb调试命令行调试区别不大,只不过是有了vim的代码界面和vimgdb提供的gdb命令的快捷键。为了调试肯定要有已经编译好的speak可执行文件,当然前面已经说过增加-g参数,这里直接make即可,而后#vim speak.cpp进入编辑界面,因为运行过run macros/gdb_mappings.vim了,所以直接按空格键进入调试命令行,file speak加载可执行文件,会看到vimgdb的模式状态、gdb的版本信息,再在命令行下按个回车会看到加载speak成功的提示:
17 (gdb) file speak
18 Reading symbols from /opt/tts/speak-1.06-source/src/speak...done.
而如果之前在speak的makefile中没有修改,则会提示没有调试信息。 Ctrl+B在speak.cpp中添加断点,Shift+R键运行,Ctrl+P(命令行中p命令)输出变量值等;一般调试会有两个问题:
一是如何运行时带参数,即这里想要保存为WAV文件,运行时需要-w参数和保存的WAV文件名。这时可以在命令行下通过r命令加参数来执行,即:r -w test就是运行speak -w test,当然前提是你已经加载了speak。
二是调试运行中,需要和终端交互即输入输出,参考【1】中方法,通过tty /dev/pts/1命令来重定向标准输入输出其中的1数字可以在新开的终端通过tty命令查看。但是据说在Ubuntu中(我的是debian)会出现 “warning:
上篇详细说明了eSpeak的调试环境的搭建,调试则和一般的gdb调试命令行调试区别不大,只不过是有了vim的代码界面和vimgdb提供的gdb命令的快捷键。为了调试肯定要有已经编译好的speak可执行文件,当然前面已经说过增加-g参数,这里直接make即可,而后#vim speak.cpp进入编辑界面,因为运行过run macros/gdb_mappings.vim了,所以直接按空格键进入调试命令行,file speak加载可执行文件,会看到vimgdb的模式状态、gdb的版本信息,再在命令行下按个回车会看到加载speak成功的提示:
17 (gdb) file speak
18 Reading symbols from /opt/tts/speak-1.06-source/src/speak...done.
而如果之前在speak的makefile中没有修改,则会提示没有调试信息。 Ctrl+B在speak.cpp中添加断点,Shift+R键运行,Ctrl+P(命令行中p命令)输出变量值等;一般调试会有两个问题:
一是如何运行时带参数,即这里想要保存为WAV文件,运行时需要-w参数和保存的WAV文件名。这时可以在命令行下通过r命令加参数来执行,即:r -w test就是运行speak -w test,当然前提是你已经加载了speak。
二是调试运行中,需要和终端交互即输入输出,参考【1】中方法,通过tty /dev/pts/1命令来重定向标准输入输出其中的1数字可以在新开的终端通过tty命令查看。但是据说在Ubuntu中(我的是debian)会出现 “warning: