================
@@ -566,24 +566,43 @@ class Disassembler : public
std::enable_shared_from_this<Disassembler>,
const Disassembler &operator=(const Disassembler &) = delete;
};
+/// Structured data for a single variable annotation.
+struct VariableAnnotation {
+ std::string variable_name;
+ /// Location description (e.g., "r15", "undef", "const_0").
+ std::string location_description;
+ /// Whether variable is live at this instruction.
+ bool is_live;
+ /// Register numbering scheme for location interpretation.
+ lldb::RegisterKind register_kind;
+ /// Where this annotation is valid.
+ std::optional<lldb_private::AddressRange> address_range;
+ /// Source file where variable was declared.
+ std::optional<std::string> decl_file;
+ /// Line number where variable was declared.
+ std::optional<uint32_t> decl_line;
+ /// Variable's type name.
+ std::optional<std::string> type_name;
+};
+
/// Tracks live variable annotations across instructions and produces
/// per-instruction "events" like `name = RDI` or `name = <undef>`.
class VariableAnnotator {
- struct VarState {
- /// Display name.
- std::string name;
- /// Last printed location (empty means <undef>).
- std::string last_loc;
- };
-
// Live state from the previous instruction, keyed by Variable::GetID().
- llvm::DenseMap<lldb::user_id_t, VarState> Live_;
+ llvm::DenseMap<lldb::user_id_t, VariableAnnotation> Live_;
----------------
JDevlieghere wrote:
I know you didn't introduce the variable, but since you're touching the line,
let's get this compliant with our coding style.
```suggestion
llvm::DenseMap<lldb::user_id_t, VariableAnnotation> m_live_vars;
```
https://github.com/llvm/llvm-project/pull/165163
_______________________________________________
lldb-commits mailing list
[email protected]
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits