forked from OSchip/llvm-project
40624a085c
Summary: This patch adds support of expression evaluation in a context of some object. Consider the following example: ``` struct S { int a = 11; int b = 12; }; int main() { S s; int a = 1; int b = 2; // We have stopped here return 0; } ``` This patch allows to do something like that: ``` lldb.frame.FindVariable("s").EvaluateExpression("a + b") ``` and the result will be `33` (not `3`) because fields `a` and `b` of `s` will be used (not locals `a` and `b`). This is achieved by replacing of `this` type and object for the expression. This has some limitations: an expression can be evaluated only for values located in the debuggee process memory (they must have an address of `eAddressTypeLoad` type). Reviewers: teemperor, clayborg, jingham, zturner, labath, davide, spyffe, serge-sans-paille Reviewed By: jingham Subscribers: abidh, lldb-commits, leonid.mashinskiy Tags: #lldb Differential Revision: https://reviews.llvm.org/D55318 llvm-svn: 353149 |
||
---|---|---|
.. | ||
API | ||
Breakpoint | ||
Core | ||
DataFormatters | ||
Expression | ||
Host | ||
Initialization | ||
Interpreter | ||
Symbol | ||
Target | ||
Utility | ||
lldb-defines.h | ||
lldb-enumerations.h | ||
lldb-forward.h | ||
lldb-private-defines.h | ||
lldb-private-enumerations.h | ||
lldb-private-forward.h | ||
lldb-private-interfaces.h | ||
lldb-private-types.h | ||
lldb-private.h | ||
lldb-public.h | ||
lldb-types.h | ||
lldb-versioning.h | ||
module.modulemap |