极客讨论器现在可以自动分析 C/C++/Java/C#/Python/Objective-C 语言源代码并生成表示调用关系的函数地图,并使用“旅游”模式,在函数地图中浏览代码。如图:
源代码窗口下方就是函数地图。它和源代码是联动的,双击一个函数节点,就自动打开这个函数的代码,编辑或者浏览源代码时则会在地图上自动定位这个函数节点。
每个函数节点上还有表示修改状态的图标,不管是在内部编辑器还是外部编辑器中修改了这个函数的代码,地图上会立即反映出来。如图:
在 UltraEdit 中修改了 Board::operator[]函数,地图上这个函数修改状态图标是红色,表示“有修改”。
建立起函数地图后,我们就可以用“旅游”模式在地图中浏览源代码了。如图:
双击 main 函数打开 main 的代码后,它调用的 Game::startGame 函数背景为黑色(和消息回忆模式一样)。此时选中 startGame ,地图上方的“前往”按钮就可以使用了:
点击一下“前往”按钮,直接打开 Game::startGame 的源代码,并将调用栈记录在消息板上,调用方是 main ,被调用方是 Game::startGame ,都是超链接,随时可以通过这些超链回到调用函数 main ,或者调用位置(也就是点击“前往”按钮以前所在的位置):
在这里有动画展示,和下载地址,欢迎使用。
![]() | 1 cxl008 2015-09-18 09:05:45 +08:00 看起来不错 |
![]() | 2 simpx 2015-09-18 09:20:02 +08:00 很有意思的项目,不过现在只有 windows 平台吗? |
3 missdeer 2015-09-18 09:45:52 +08:00 这 UI 有点差啊 |
![]() | 4 GPU 2015-09-18 09:54:22 +08:00 如果 UI 现代一点 ,就很棒很棒了 。 话说如果有这个 ,看别人的代码就不用这么麻烦,要用全文搜索工具咯 。 一直好想有这类的工具 |
5 WalkingEraser 2015-09-18 10:15:16 +08:00 有机会的话,也想完成个像样功能的 parser |
6 ZHenJ 2015-09-18 10:23:01 +08:00 不错,看是公司的版权,国内做工具类软件的公司吗? UI 就不吐槽了,估计是人手不足?函数地图能够分离出来的话,多屏显示会很棒 |
![]() | 7 cppgeek OP |
![]() | 8 scys 2015-09-18 10:39:44 +08:00 其实我想问,测试过多大的数量级的代码? 如果好用,试试跑 AOSP 等级 |
![]() | 9 mocxe2v 2015-09-18 10:40:10 +08:00 用过 Understand ,不知这个和它的区别在什么地方? |
![]() | 10 21grams 2015-09-18 11:49:19 +08:00 能代替 sourceinsight 吗? |
![]() | 11 libo26 2015-09-18 13:25:52 +08:00 期待 UI 更新 |
![]() | 12 cppgeek OP |
![]() | 13 cppgeek OP |
![]() | 14 RangerWolf 2015-09-18 15:01:20 +08:00 可以直接 js 代码的处理吗? |
15 clijiac 2015-09-18 15:33:22 +08:00 UI 略古老 但是看起来不错 |
![]() | 16 sorra 2015-09-18 15:37:29 +08:00 你们这个能识别函数重载吗? |
![]() | 17 cppgeek OP |
![]() | 18 shuax 2015-09-18 21:55:16 +08:00 吃我 IDA 一记 |
![]() | 19 gaocegege 2015-09-21 19:40:57 +08:00 https://github.com/colder/insane 看上去只是一个 controll flow graph generator? |