最近折腾上了几款开发相关的工具堪称神器,工欲善其事必先利其器也。有时间来整理一下写出来。
使用VisualStudio和SublimeText来写代码固然很爽,但是想要更轻量级和更精准的代码分析就显得略有不足了。使用VS写代码时非常舒服各种智能提示/调试非常好但是单纯的从代码阅读工具来说也是太臃肿了点,而且对于代码符号的支持也并不是太好(装上VA可破),不过仅仅是看代码,还是找个轻量级的方案比较好。SublimeText作文文本编辑器确实是神器,我写代码时也都在用,但是使用它阅读代码最大的问题是不能够很方便的在项目间跳转,而且对于符号分析也几乎没有(不考虑插件的情况下)。解决以上问题的答案是——可以用Source Insight!
下面简单的附上Source Insight的介绍:
Source Insight能分析你的源代码并在你工作的同时动态维护它自己的符号数据库,并自动为你显示有用的上下文信息。 Source Insight不仅仅是一个强大的程序编辑器,它还能显示reference trees,class inheritance diagrams和call trees。Source Insight提供了最快速的对源代码的导航和任何程序编辑器的源信息。
废话不多说,看图。
可以很方便看到代码中的各种信息,上面窗口中包含了代码符号/编辑器/项目文件/上下文窗口/关联窗口。
我最喜欢的就是上下文窗口和关联窗口的功能,可以很方便的在项目中跳转,代码分析非常精准,用了几天就觉得离不开了,哈哈。
具体的还是自己去体验一下吧,我对它的评价是:代码阅读神器,没的说!
下面来说一下这款软件的问题。
Source Insight默认是不支持UTF-8的,所以如果代码注释中含有中文,是会显示乱码的,我试了有很多方案都不太完美,直到我看到了这篇文章——Source Insight 3.X 插件新loader发布,懒得去看文章的可以直接点此下载博主编译好的插件。
使用方法:直接解压到Source Insight安装目录即可。
这个博主写的这两个插件,实现了Source Insight支持UTF-8编码和多标签页(多标签页非常好用)。
该博主实现该插件的方式是使用dll注入,有兴趣的可以看看这一系列文章:给Source Insight做个外挂
还有一些关于dll劫持、注入的文章,也基本都是同一种方法,有兴趣的可以研究一下。
- Win7下dll劫持、注入
- Ring3下Dll注入方法整理汇总
- Dll注入技术之劫持进程创建注入
- DLL注入的几种姿势(一):Windows Hooks
- DLL注入的几种姿势(二):CreateRemoteThread And More
但是这个博主的插件在我这里有点BUG,我自己这两天用Source Insight读了读他写的多标签页插件的代码(用Source Insight来读代码简直爽的没话说),我做了一些修改,包括插件的英文化以及针对我个人喜好的微调。
原作博主的代码地址:sihook
我修改之后的代码:fixsihook,修复了一点小问题并添加了一些注释,我编译好的三份sihook.dll点此下载(标签页略有不同,凭个人喜好选择)。
sihook项目中多标签的主要功能是在Tabctl.c
中的实现的,当然你也可以读下他所有的代码凭个人喜好修改。
上面的代码中sihook的项目均为Code::Block为工程,使用GCC编译。想要自己搭建一个编译环境可以去Code::Block官网下载一份带有编译环境(Mingw/GCC)的(二进制版本)安装包,或者直接使用makefile编译。
另外,另附自用Source Insight配置一份(尤其是编辑器配色,搞了好久)——点此下载。
下载完之后再Source Insight中选择Options-LoadConfiguration选择下载的SourceInsightSettings.CF3即可。
Source Insight最新版本以及中文化程序/个人自用配置——打包下载
同样的工具还有Understand,有时间再尝试一下咯。