http://http://www.sooset.com/是一个提供在线开源代码查看的网站,在上面可以找到大多数开源软件的源码,注册用户也可以自己提交源码,并可选择是否共享给其他用户。
当前支持的解析的编程语言包括:
支持解析的编程语言 |
支持解析的文件类型 |
C |
*.c ,*.h |
C++ |
*.cpp *.h |
JAVA |
*.java |
PYTHON |
*.py |
JS |
*.js |
支持的解析器:IE7 ,IE8,Firefox ,Chrome.
1.如果能更方便的找到需要的代码工程?
a.如何更方便的通过搜索框查找?
可以通过以下任意一种方式选择搜索的关键字:
关键字选择 |
举例 |
直接使用工程名 |
如直接输入 linux,snort,glibc等关键字 |
搜索关键字 |
比如查找linux或者freebsd的内核代码时,可直接搜索OS kernel等关键字,查找一些网络相关代码时可直接搜索networking等 |
通过搜索工程描述中的关键字搜索 |
根据工程创建时添加的描述进行查找,比如需要查找malloc源码的位置时,可在搜索框中直接输入malloc进行查找,这样可以直接找到glibc的工程。 |
有2个搜索框可以直接查找工程:
还未打开工程时,可以直接在首页工程搜索框进行查找
![](http://hiphotos.baidu.com/asmh1989/pic/item/fc070638b170fba93b87cec5.jpg)
当已经打开工程时,可以不需要退到首页再去查找工程,可以将工程顶部搜索框选择project再搜索即可:
![](http://hiphotos.baidu.com/asmh1989/pic/item/7cd4e9f233f7280a342accc5.jpg)
b.如何通过首页的链接查找工程?
可以直接点击首页的hotproject和右下角的分类框直接点击查找工程
2.如果能更方便的查看代码工程下的代码?
a.如何查找工程中需要查找的文件?
选择完工程后,开始查找文件选择需要查看的代码了,如果清楚待查看的文件的位置,可以直接点击右侧的目录树查找想应的文件:![](http://hiphotos.baidu.com/asmh1989/pic/item/f0533a513e5a07061138c2c5.jpg)
还可以通过文件列表上的搜索框输入待查找的目录或者文件名(支持模糊匹配,方便更容易查找到需要的目录):
![](http://hiphotos.baidu.com/asmh1989/pic/item/d098820e239616706159f3c5.jpg)
此外和通过工程内的工程搜索窗口查找到所需要的文件,将工程顶部的搜索框选择为file,直接查找到需要的文件:
![](http://hiphotos.baidu.com/asmh1989/pic/item/fffe155d1d489219faf2c0c5.jpg)
b.如果查找函数的引用调用位置?
打开一个文件后,就可以查找具体需要查看的函数了,可以通过直接点击函数名找到该函数的调用位置,底部的搜索框可以直接看到该函数的引用位置:![](http://hiphotos.baidu.com/asmh1989/pic/item/daec8042f482734b9213c6c5.jpg)
可以提前预览该函数调用位置:
![](http://hiphotos.baidu.com/asmh1989/pic/item/3126611082637124cb80c4c5.jpg)
也可以直接点击下面的搜索结果直接跳转到该引用位置:
![](http://hiphotos.baidu.com/asmh1989/pic/item/59c7637fd9f0a4620dd7dac5.jpg)
可以通过如下2种方式来遍历查找的结果:
通过使用search next/previous 遍历查找的结果![](http://hiphotos.baidu.com/asmh1989/pic/item/0054b63919a7507996ddd8c5.jpg)
![](http://hiphotos.baidu.com/asmh1989/pic/item/c603422280ad601eac34dec5.jpg)
如果既不清楚待查找的函数名称和所在的文件名称及其所在的目录,可以通过工程顶部的搜索框查找到相应的函数,所有的函数名、变量名等都属于symbol,可以选择搜索定义还是引用位置,比如我需要查找linux kernel底下一个名称叫 alloc_asxxx的函数,函数名称记不太清楚,也不清楚具体的调用位置,此时可通过顶部的搜索框:
![](http://hiphotos.baidu.com/asmh1989/pic/item/5d097245b44498d8b3b7dcc5.jpg)
如果选择definition,只会搜索到这个函数的定义的位置,如果选择all,则可以搜索到定义和引用位置:
![](http://hiphotos.baidu.com/asmh1989/pic/item/67e08a83a9c711f80df4d2c5.jpg)
此外还可以通过右键轻松的搜索查看symbol的定义和引用位置:
选定symbol后,可以点击鼠标右键的按钮,选择Global definition 或者symbol reference查找定义或者引用位置。![](http://hiphotos.baidu.com/asmh1989/pic/item/786303a31184f0f7caefd0c5.jpg)
c.如果查找变量结构体成员等引用调用位置?
对于变量,结构体成员等搜索方式,与函数使用类似,每一个结构体定义名称,成员变量,变量等都属于一个symbol,都可以通过工程顶部的symbol搜索框完成相应的查找功能,也可以通过点击具体的变量名等完成相应的功能。d.如果通过注释或者打印的字符串及其他内容查找代码?
![](http://hiphotos.baidu.com/asmh1989/pic/item/c620e2acd49fb7534a36d6c5.jpg)
通过功能内的搜索框选择comment或者string时,可以分别搜索代码中相应的注释或者字符串找到相应位置。
使用Plain file查找时,可以去匹配 readme kconfig makefile等非代码的txt文档。e.如果查看之前浏览过的页面?
可以通过backward和forward跳转之前浏览的页面:![](http://hiphotos.baidu.com/asmh1989/pic/item/013ba5086a466df52fddd4c5.jpg)
更方便的是使用如下方式查看之前浏览的页面并跳转:
![](http://hiphotos.baidu.com/asmh1989/pic/item/81e27fae0dad62967dd92ac5.jpg)
f.其他使用的小技巧:
1.通过右键的符号高亮可以查看代码更加清晰![](http://hiphotos.baidu.com/asmh1989/pic/item/e40970cd59a94c4a00e928c5.jpg)
2.通过goto line 之间跳转到相应文件的指定行:
![](http://hiphotos.baidu.com/asmh1989/pic/item/b60d5e112699f85b203f2ec5.jpg)
3.对经常浏览的工程设置为favorite(Bookmark),这样不用每次都搜索查找该工程:
注册用户注册后,可以通过如下方式标记:![](http://hiphotos.baidu.com/asmh1989/pic/item/cb3dea00084f79547aec2cc5.jpg)
在管理页面可以查看到自己mark的工程:
![](http://hiphotos.baidu.com/asmh1989/pic/item/ebeb6b0f509c95bd37d122c5.jpg)
![](http://hiphotos.baidu.com/asmh1989/pic/item/b13887e61ba1ee74b83820c5.jpg)
3.如果更好的创建自己的工程?
如果愿意将自己的代码工程和其他用户共享的话,需要注意工程名,关键字 和描述的填写,这些能让你提交的代码工程更方便为其他用户服务.
如果不愿意跟其他用户共享,可通过该工程的权限管理解决该问题。
以下为示例:创建一个开源内存管理工程的代码,向特殊用户共享![](http://hiphotos.baidu.com/asmh1989/pic/item/fc05fc2f96485a0a4ec226c5.jpg)