[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-03 Thread via lldb-commits
jimingham wrote: > We can add a button to the variables UI or a context menu entry for running > the description. I can switch to that instead. I think that's the better way to go. If you do this, the View that's going to display the description has to be expandable and scrollable, since thes

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread John Harrison via lldb-commits
https://github.com/ashgti converted_to_draft https://github.com/llvm/llvm-project/pull/146754 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread John Harrison via lldb-commits
ashgti wrote: We can add a button to the variables UI or a context menu entry for running the description. I can switch to that instead. https://github.com/llvm/llvm-project/pull/146754 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https:/

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
jimingham wrote: There are exceptions to this, for instance we run functions automatically to gather the various Sanitizer report results. But those functions have been written with this use in mind, so they don't take locks or do anything that might be unsafe. https://github.com/llvm/llvm-p

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
jimingham wrote: Remember, running code is NOT a risk free operation. If I am stopped on a thread in code that has acquired a non-recursive lock A, and I run an expression by hand that ends up first successfully acquiring a lock B and then trying to acquire A, that expression will deadlock. T

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
jimingham wrote: Also note that for ObjC in particular for many classes the "Object Description" is NOT a summary of the object. Print the Object Description of an NSDictionary 1000 objects and you'll get pages and pages of output with all the elements (and their Descriptions inline IIRC). T

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
jimingham wrote: IIRC, C# has a similar object description mechanism, and they had to add some annotations to the object to specify "don't run this one automatically" because they kept getting into trouble with object descriptions that did too much work, or forced lazily evaluated entities to

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
jimingham wrote: The way Xcode deals with this is that the Locals view's Right-Click menu offers a "Print Description" action. That way users can very easily dial up the object description, but doing so remains under the user's explicit control. https://github.com/llvm/llvm-project/pull/14675

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
jimingham wrote: Object Description is always code-running. It works in languages that have a convention for printing a user-facing string representation of an object. I guess you could have a language with a static way to do this but I haven't seen one. https://github.com/llvm/llvm-project

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
jimingham wrote: dynamic value and object description are orthogonal. Dynamic value is the system that allows you to discover, for instance, the "most specific class of an object" when you are passed a pointer typed as one of the base classes of that most specific class. , I don't think

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread John Harrison via lldb-commits
ashgti wrote: > If you can ensure that the expression you are running can safely be executed > by running only the current thread, it's only a performance problem to run > expressions behind the user's back. But otherwise, we really should only run > expressions when the user explicitly asks u

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
jimingham wrote: I'm not sure that you really always want to do this. Fetching the ObjectDescription for a variable means running code in the target to do so. And because we can't tell whether code in an ObjectDescription will require locks that other threads might hold, we do our usual "try

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread via lldb-commits
llvmbot wrote: @llvm/pr-subscribers-lldb Author: John Harrison (ashgti) Changes This corrects a mistake I made when I previously tried to add support for obj-c/swift variables in lldb-dap. This should call into `GetObjectDescription` if there is no summary of the type available and the d

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread John Harrison via lldb-commits
https://github.com/ashgti ready_for_review https://github.com/llvm/llvm-project/pull/146754 ___ lldb-commits mailing list lldb-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

[Lldb-commits] [lldb] [lldb-dap] Adjust variable display values. (PR #146754)

2025-07-02 Thread John Harrison via lldb-commits
https://github.com/ashgti created https://github.com/llvm/llvm-project/pull/146754 This corrects a mistake I made when I previously tried to add support for obj-c/swift variables in lldb-dap. This should call into `GetObjectDescription` if there is no summary of the type available and the desc