weggli is a fast and robust semantic search tool for C and C++ codebases. It is designed to help security researchers identify interesting functionality in large codebases.
First of all, thank you for such a fun tool to use - I've been enjoying it!
So I am not 100% sure what is expected, what isn't but it feels to me there is something going wrong. Here is my a.cc test case:
void foo(const int32_t a1) {
const auto &a = a::b::c::d::my_call<std::string>(a1);
auto b = my_call<std::string>(a1);
auto c = my_call(a1);
auto d = my_call<string>(a1);
}
And here are the queries with their associated results:
$ ./target/debug/weggli --cpp '$f()' ./test.cc matches a::b::c::d::my_call<std::string>(a1); and my_call(a1); but not the other two lines
$ ./target/debug/weggli --cpp '$f<$f2>()' ./test.cc matches my_call<string>(a1); but not the other lines which seems odd as well
$ ./target/debug/weggli --cpp '$f<std::string>()' ./test.cc matches my_call<std::string>(a1); but not a::b::c::d::my_call<std::string>(a1);
Maybe I am doing something wrong 😅? Let me know if you need anything more from me.
Hi!
First of all, thank you for such a fun tool to use - I've been enjoying it!
So I am not 100% sure what is expected, what isn't but it feels to me there is something going wrong. Here is my
a.cc
test case:And here are the queries with their associated results:
$ ./target/debug/weggli --cpp '$f()' ./test.cc
matchesa::b::c::d::my_call<std::string>(a1);
andmy_call(a1);
but not the other two lines$ ./target/debug/weggli --cpp '$f<$f2>()' ./test.cc
matchesmy_call<string>(a1);
but not the other lines which seems odd as well$ ./target/debug/weggli --cpp '$f<std::string>()' ./test.cc
matchesmy_call<std::string>(a1);
but nota::b::c::d::my_call<std::string>(a1);
Maybe I am doing something wrong 😅? Let me know if you need anything more from me.
Cheers