[Lldb-commits] [PATCH] D144937: [LLDB] Expose several methods in SBWatchpoint

Jim Ingham via Phabricator via lldb-commits lldb-commits at lists.llvm.org
Wed Mar 1 13:51:43 PST 2023


jingham added inline comments.


================
Comment at: lldb/test/API/python_api/watchpoint/TestSetWatchpoint.py:66
+        if variable_watchpoint:
+            # FIXME: There should probably be an API to create a variable watchpoint
+            self.runCmd('watchpoint set variable -w read_write -- global')
----------------
delcypher wrote:
> delcypher wrote:
> > mib wrote:
> > > +1, please file an enhancement request :) 
> > Will do. TBH I'm actually surprised that calling `SBValue::Watch()` doesn't create a variable watchpoint.
> Actually I'm even more confident this is a bug. If `value.Watch(...)` created an expression watchpoint you would expect the type to be a `int32_t*` (because the watched expression would need to have been `&global`), not `int32_t`.
> 
> However, I think this bug should be fixed in a different commit.
There's no guarantee that an SBValue represents a variable.  An SBValue backed by a ValueObjectVariable (or a ValueObjectChild whose root object is a ValueObjectVariable) could create a Variable watchpoint.  But for instance a typed memory address isn't a variable, nor is an expression result.  They don't have scopes, which is the main thing "variable" watchpoints have over expression ones, for instance.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D144937/new/

https://reviews.llvm.org/D144937



More information about the lldb-commits mailing list