clayborg added a comment.

Do we really expect users to actually write code where variables start with 
'$'? We will need to make some clear rules of the lookup order if so. I would 
suggest the following order

- look for real variables by exact name match first
- look for expression global variables next
- look for expression results next ($<digit>)
- look for registers



================
Comment at: 
lldb/packages/Python/lldbsuite/test/expression_command/dollar-in-variable/main.c:5
+  int $foo = 42;
+  return 0; //%self.expect("expr $foo", substrs=['(int) $0 = 42'])
+}
----------------
The idea was that a "$" prefix wouldn't be found in normal code. In LLDB $ has 
the following special use cases:
- all expression results are named $<digit> just like LLDB
- if you use $ it can be followed by a register name so you can access 
registers in expressions ($rax, $sp, etc)
- any definitions in your expression where the variable is prefixed with '$' 
will become an expression global variable available to all subsequent 
expressions:
```
(lldb) expr int $my_global = 12;
(lldb) expr ++$my_global
```
- All function names that start with '$' are currently thought to be reserved 
for expression and so that any functions we create don't interact with real 
functions


Repository:
  rLLDB LLDB

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

https://reviews.llvm.org/D64194



_______________________________________________
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits

Reply via email to