labath wrote:

> > This seems like it could be problematic for IDEs, if they don't print the 
> > error in the same window as the expression being evaluated. The arrows 
> > could end up pointing to nowhere, or to the wrong place in the expression 
> > (if we don't get the right offset).
> 
> Eventually I want IDEs to get access to the same kind of machine-readable 
> diagnostics, so they can format errors however they like (or, if they aren't 
> interested, dump the pre-rendered textual error that is still available).

I'm still worried about this. Yes, the IDEs can dump the pre-rendered error 
(and right now, that's all they can do), but this rendering assumes that the 
error message will be printed in a particular way (right under the original 
command, which will include the prompt and everything). I think that's fine for 
the commands entered through the LLDB command line, but I don't think it's 
reasonable to expect that every caller of `SBCommandInterpreter::HandleCommand` 
will do the same thing. I've looked at what lldb-dap that, and it looks like it 
will mostly be okay, because it explicitly echoes the command to be executed 
(although it [hardcodes the prompt 
string](https://github.com/llvm/llvm-project/blob/60ed2361c0917b4f8d54cb85935cfbf8904aa51d/lldb/tools/lldb-dap/LLDBUtils.cpp#L61)
 instead of getting it from lldb), but if you're looking for a example, you 
don't need to look further than your test case. Even though you've formatted 
the test input nicely, this is how its trace looks like when you run it:

```
Ran command:
"expr -i 0 -o 0 -- a"

Got output:
                         ^
                         ╰─ error: use of undeclared identifier 'a'
```

(sure we can fix this so that the output makes sense, but I wonder how many 
other such callers are out there)

https://github.com/llvm/llvm-project/pull/106470
_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to