最近一直在找 C/C++静态分析工具,一找下来感觉都是分析代码中可能的 bug 之类的(Cppcheck, Doxygen..),
我的目标很简单,就是给出 .h .cpp .c 文件,然后让找出里面指定类型的名称,比如函数名字,字符串。。。
python 里面倒是有一个 pycparser,可只是针对 C 语言的,我想要 C/C++都支持的。
这个需求感觉就是那些个高大上工具分析过程的其中一个小过程,
问下大家有没有这个类似的工具或者库能用的。。
最近一直在找 C/C++静态分析工具,一找下来感觉都是分析代码中可能的 bug 之类的(Cppcheck, Doxygen..),
我的目标很简单,就是给出 .h .cpp .c 文件,然后让找出里面指定类型的名称,比如函数名字,字符串。。。
python 里面倒是有一个 pycparser,可只是针对 C 语言的,我想要 C/C++都支持的。
这个需求感觉就是那些个高大上工具分析过程的其中一个小过程,
问下大家有没有这个类似的工具或者库能用的。。
|
pagxirMay 13, 2019 via Android
1
你需要的是 lxr,用来看 mozilla 跟 linux 源代码的那个
|
|
MithrilMay 13, 2019
2
你可以用 ANTLR 自己写个,C++的话有写好的语法文件,ANTLR 生成 Parser 以后你自己在对应的回调函数里处理一下就好了。
或者只是看 Token 的话 OpenGrok 一类的软件都可以,它用的是 CTags 做的 Parser |
|
KirscheisMay 13, 2019 via Android
3
感觉你说的东西不就是 symbol table 吗。。想比较方便地查的话,gdb 和 lldb 似乎都行。。
|
|
QiaoguiMay 13, 2019 via Android
4
你可以使用 flex 和 bison,网上有关于 anscii cpp 的标准 grammar 文件,拷贝进去,在你要的语法产生式后面写上导出的代码就可以了。
|
|
luozicMay 13, 2019 via iPhone
5
你这个需要的是看看能不能把 ide 属性标记的代码拆出来。
|
|
QiaoguiMay 13, 2019 via Android
6
顺带一提,flex 是词法,bison 是语法,两个都要拷。
|
|
luozicMay 13, 2019 via iPhone
7
https://www.jianshu.com/p/466ebbcb5f0e
现在一般都是跟踪继承 ,这跟踪一个个参数有啥用? |
|
dangyuluoMay 13, 2019
8
pclint,好用
|
|
missdeerMay 13, 2019
9
opengrok
|
|
Destiny97May 13, 2019 via Android
10
source insight 我觉得还不错
|
|
345161974May 13, 2019
11
source insight
|
|
chinese_zmmMay 13, 2019 via iPhone
12
kclockwork
|
|
HannibaIMay 13, 2019
13
clang analyzer ?
https://clang-analyzer.llvm.org |
|
srt180May 13, 2019
14
顶一波楼上 clang
|
|
reusMay 13, 2019
15
https://clang.llvm.org/docs/index.html
看 Using Clang as a Library 一节 LibTooling 结合 RecursiveASTVisitor 可以实现你想要的 |
|
nilbotMay 13, 2019 via Android
16
clangd 和 /或 cquery
|
|
17
颤抖中。。。。。
我也是学 C++的,为啥你们说的我一个都不认识。。 |
|
yujincheng08May 13, 2019 via Android
18
libclang 了解一下
|
|
eliteYangMay 13, 2019
19
cppcheck
sonarqube |
|
zwh2698May 13, 2019
20
你找的应该是从词法到语义的分析器吧, 推荐 Visual Parse++
|