2012/2/29 David Wagner <[email protected]>: > Hello, > > I have been trying to find a tool that would allow to perform queries on C > code such as "what are the values, in all the codebase, that are passed as > second argument of 'func' ?". > Given the following code: > func(0, ENUM_VAL_2); > func(0, ENUM_VAL_1); > func(0, ENUM_VAL_1 | ENUM_VAL_3); > That paricular query would return (ENUM_VAL_1, ENUM_VAL_2, ENUM_VAL_1 | > ENUM_VAL_3). > Or queries like "give me a call graph for 'func'". > > After some research, I remembered Coccinelle as it appeared on the result of > a search with some keywords... > Does that fall under Cocinelle's matching capabilities ? And if yes, what > effort would it require to be able to do such things ? > > I don't know OCaml yet (I can try and learn it if it helps) and only have > had an introduction on formal methods and model checking some time ago ... > Perhaps there is a better suited tool ? I used CScope for simpler queries > and still have some CScope-based tools to explore. > I also read about some tools around GXL (Graph eXchange Language) but > couldn't find anything up-to-date (except maybe GreQL, but it isn't > opensource). > > I also imagined it could be possible to parse the code and build an SQL > database from it but I'm not sure that it is fit and I can only begin to > imagine all the problems I would run into. > > > Any pointer would be greatly welcome.
If your requests are not too complicated you can try "coccigrep" as well it is "semantic grep" which uses coccinelle spatch. see: http://home.regit.org/software/coccigrep/ -- Erk Le gouvernement représentatif n'est pas la démocratie -- http://www.le-message.org _______________________________________________ Cocci mailing list [email protected] http://lists.diku.dk/mailman/listinfo/cocci (Web access from inside DIKUs LAN only)
