LLDB  mainline
ValueObjectUpdater.h
Go to the documentation of this file.
1 //===-- ValueObjectUpdater.h ------------------------------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 
9 #ifndef LLDB_CORE_VALUEOBJECTUPDATER_H
10 #define LLDB_CORE_VALUEOBJECTUPDATER_H
11 
12 #include "lldb/Core/ValueObject.h"
13 
14 namespace lldb_private {
15 
16 /// A value object class that is seeded with the static variable value
17 /// and it vends the user facing value object. If the type is dynamic it can
18 /// vend the dynamic type. If this user type also has a synthetic type
19 /// associated with it, it will vend the synthetic type. The class watches the
20 /// process' stop ID and will update the user type when needed.
22  /// The root value object is the static typed variable object.
23  lldb::ValueObjectSP m_root_valobj_sp;
24  /// The user value object is the value object the user wants to see.
25  lldb::ValueObjectSP m_user_valobj_sp;
26  /// The stop ID that m_user_valobj_sp is valid for.
28 
29 public:
30  ValueObjectUpdater(lldb::ValueObjectSP in_valobj_sp);
31 
32  /// Gets the correct value object from the root object for a given process
33  /// stop ID. If dynamic values are enabled, or if synthetic children are
34  /// enabled, the value object that the user wants to see might change while
35  /// debugging.
36  lldb::ValueObjectSP GetSP();
37 
38  lldb::ProcessSP GetProcessSP() const;
39 };
40 
41 } // namespace lldb_private
42 
43 #endif // LLDB_CORE_VALUEOBJECTUPDATER_H
lldb_private::ValueObjectUpdater::ValueObjectUpdater
ValueObjectUpdater(lldb::ValueObjectSP in_valobj_sp)
Definition: ValueObjectUpdater.cpp:13
lldb_private::ValueObjectUpdater::GetSP
lldb::ValueObjectSP GetSP()
Gets the correct value object from the root object for a given process stop ID.
Definition: ValueObjectUpdater.cpp:22
lldb_private::ValueObjectUpdater::m_root_valobj_sp
lldb::ValueObjectSP m_root_valobj_sp
The root value object is the static typed variable object.
Definition: ValueObjectUpdater.h:23
lldb_private::ValueObjectUpdater
A value object class that is seeded with the static variable value and it vends the user facing value...
Definition: ValueObjectUpdater.h:21
lldb_private::ValueObjectUpdater::m_stop_id
uint32_t m_stop_id
The stop ID that m_user_valobj_sp is valid for.
Definition: ValueObjectUpdater.h:27
ValueObject.h
lldb_private::ValueObjectUpdater::GetProcessSP
lldb::ProcessSP GetProcessSP() const
Definition: ValueObjectUpdater.cpp:52
uint32_t
UINT32_MAX
#define UINT32_MAX
Definition: lldb-defines.h:19
lldb_private
A class that represents a running process on the host machine.
Definition: SBCommandInterpreterRunOptions.h:16
lldb_private::ValueObjectUpdater::m_user_valobj_sp
lldb::ValueObjectSP m_user_valobj_sp
The user value object is the value object the user wants to see.
Definition: ValueObjectUpdater.h:25