davide added a comment. In D71310#1778534 <https://reviews.llvm.org/D71310#1778534>, @jingham wrote:
> Adrian and I talked about this some more. Apparently the idea was that you > have some type Foo and you want to look for some error state in instances of > that type (Foo::a + Foo::b < 10). So you add a Type Validator for Foo that > does this check, and every time lldb prints a variable of type Foo, it will > run the Validator on it, and if it fails validation, then the printer will > print an ! at the beginning of the printing, and also there's an SB API to > get whether the Value passed the validator. > > So then you could just debug along, and either look for the ! in the > printing, or add a stop hook that checks the Validator result on all locals, > and if you ever saw the error state, you would know to investigate further. > That's actually a pretty neat idea. > > The current state of the code is that there is actually no way to add a Type > Validator. To be really useful, there would need to be a way to create a > scripted validator, so the Python bindings and some command/SB API to > register the validator. > > The implementation is a little cut-and-paste too. It shares all the same > options with the Synthetic child provider & Summaries (skips pointers, > cascade, etc.) but I don't think you would ever want a type validator that > would only validate references to a type, but not the type itself. And then > the implementation is very cut & paste. So I'm fine with deleting this for > now, but maybe adding it as an interesting project idea to the Projects page > - with a reference to the hash of this commit as a starting point? > > It's a neat idea but it's also been 5 years now and it was never made > useful... +1. This code can be resurrected as-needed. CHANGES SINCE LAST ACTION https://reviews.llvm.org/D71310/new/ https://reviews.llvm.org/D71310 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits