摘要:
用GDB调试程序GDB是一个强大的命令行调试工具。大家知道命令行的强大就是在于,其可以形成执行序列,形成脚本。UNIX下的软件全是命令行的,这给程序开发提代供了极大的便利,命令行软件的优势在于,它们可以非常容易的集成在一起,使用几个简单的已有工具的命令,就可以做出一个非常强大的功能。于是UNIX下的软件比Windows下的软件更能有机地结合,各自发挥各自的长处,组合成更为强劲的功能。而Windows下的图形软件基本上是各自为营,互相不能调用,很不利于各种软件的相互集成。在这里并不是要和Windows做个什么比较,所谓“寸有所长,尺有所短”,图形化工具还是有不如命令行的地方。用GDB调试程序GD 阅读全文
摘要:
:qx 开始记录宏,并将结果存入寄存器xq 退出记录模式@x 播放记录在x寄存器中的宏命令稍微解释一下,当在normal模式下输入:qx后,你对文本的所有编辑动作将会被记录下来,再次输入q即退出了记录模式,然后输入@x对刚才记录下来的命令进行重复,此命令后可跟数字,表示要重复多少次,比如@x20,可以重复20次。这个在文本的批处理中是非常有用的。同时编辑多个文件在vim众多的插件中,有一个叫minibuffer的插件,就是下面所说的标签页功能了,可以支持同时编辑多个文件。标签命令:tabe fn 在一个新的标签页中编辑文件fngt 切换到下一个标签页gT 切换到上一个标签页:tabr 切换到第 阅读全文
摘要:
一 字节压缩 实现原理:因为a~z的ascii码用不了一个字节表示,减小‘a’后每个字符实际上代表了0-26,五个bit即可表示,压缩后,能省 3/8 的空间, 关键在于如何组织存储顺序便于检索和存储,同时要考虑存储的时间效率如果将五位按照顺序依次存储,一不好保存,二不好访问 访问按照字节进行,应尽量将 m个数组合成n个字节,能否将8 个字符存成 5 个字节呢? 因此考虑就5位再拆下,分解成最高位和低四位,这样每两个字符就可以转换成一个新的数了;每 8 个字符的最高位可组合成一个字节 ;4、8的规律性很强,组合分解都很方便×××××× 阅读全文
摘要:
调试信息的生成进行gdb调试时最重要的是要保存调试信息,.c与.cpp文件编译之后可生成.o、.a、.so以及可执行文件等等。如果依赖文件中存在.c或.cpp文件,编译时加上-g选项,那么就可以用gdb调试目标文件了。值得注意的是:如果将.c或.cpp编译(加上了-g)成.o文件,再将这些.o文件编译(没有用到-g)成.so,虽然编译成.so时没有用到-g,但.so文件中仍然保存了调试信息,仍可用gdb调试。保存调试信息的根源在于用-g编译.c与.cpp文件,其他中间过程可不用-g。利用部分源文件调试gdb调试时,如果有源代码,那就能单步执行,一步一步的查看结果,能方便的定位问题。但是,如果源 阅读全文