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
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits