I tried using lldb built from master, but still seeing some STL container member functions not recognizable in a debugging session. I am wondering if the work has been pushed to master; also if it’s pushed but not enabled by default yet, is there a flag I can use to turn on the expression evaluator using Clang modules. Thanks a lot for the great work.
+some folks who probably worked on this/know more about it.
I’d imagine more detail would be required - like what platform you’re on, whether you’re building with modules, whether you enabled modular debug info (-gmodules, I think), etc.
+Raphael who did the work for clang modules in the expression evaluator.
The prototype is upstream and tested here , however as you can see in the tests it currently requires manually simplifying the expression result type ( e.g. std::vector<int>::size_type needs to be casted to size_t). Also you might easily run into some cases where LLDB can’t handle all these new C++ types in the debugger and crash. I’m currently hacking on some patches to get this enabled default soon-ish but there is no fixed ETA for this feature.
Regarding how you would use it you can just check the tests, but the general idea is to run `settings set target.import-std-module true` and then just run expressions in a program that used the STL in some form. But as said, the user experience is still quite crashy until I get some other fixes upstream. I’ll write it in the release notes when I think this is ready to be beta-tested.