cmtice wrote: > > Okay, at this I don't think I have any more comments about functionality. > > The remaining comments are either stylistic (which should be > > self-explanatory) or about error handling (which I'm going to write about > > here). > > For the error handling, I missed the fact that your new implementation > > throws away the structured diagnostic info after using it to construct the > > error string. That kinda misses the point, which is to provide the rest of > > lldb with a structured representation of the error. It looks like the base > > DiagnosticError is abstract, so for that we need to create our own error > > subclass of that. I tried to sketch it out in the inline comments (by > > combining the existing `ExpressionError` class and your code), but this is > > only a rough sketch -- you'll certainly need to adjust it to make it work. > > You can tell whether you've succeded by looking at how the new "frame var" > > error messages are formatted. They should come out in the same was as in > > the snippet that [Jim > > posted](https://github.com/llvm/llvm-project/pull/120971#issuecomment-2722987750). > > The other set of suggested changes is about changing the error > > representation from Status to llvm::Error. We're basically already using > > the error object as if it was an llvm::Error, so I think we should just > > complete the transition and use it throughout the DIL. > > I think you've misunderstood the code? I don't just throw away the > DiagnosticDetail -- its formatted error message, which is what you've been > asking for, gets passed back into the Status error, which LLDB then prints > out. So the current implementation is giving the formatted error messages now > (without any of your further suggested changes): > > (lldb) v externGlobalVar error: externGlobalVar ˄ ╰─ error: use of undeclared > identifier 'externGlobalVar' (lldb) v 'cat + dog' error: cat + dog ˄ ╰─ > error: use of undeclared identifier 'cat' (lldb) v globalVar%%32 error: > globalVar%%32 ˄ ╰─ error: Unexpected token: <'%' (percent)>
``` (lldb) v externGlobalVar error: externGlobalVar ˄ ╰─ error: use of undeclared identifier 'externGlobalVar' (lldb) v 'cat + dog' error: cat + dog ˄ ╰─ error: use of undeclared identifier 'cat' (lldb) v globalVar^32 (int) result = -559038769 (lldb) v globalVar%%32 error: globalVar%%32 ˄ ╰─ error: Unexpected token: <'%' (percent)> (lldb) ``` https://github.com/llvm/llvm-project/pull/120971 _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits