summaryrefslogtreecommitdiffstats
path: root/lldb/source/API/SBFrame.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lldb/source/API/SBFrame.cpp')
-rw-r--r--lldb/source/API/SBFrame.cpp10
1 files changed, 9 insertions, 1 deletions
diff --git a/lldb/source/API/SBFrame.cpp b/lldb/source/API/SBFrame.cpp
index cdf5a5a2a76..5c491eb4e22 100644
--- a/lldb/source/API/SBFrame.cpp
+++ b/lldb/source/API/SBFrame.cpp
@@ -10,6 +10,7 @@
// C Includes
// C++ Includes
#include <algorithm>
+#include <set>
#include <string>
// Other libraries and framework includes
@@ -1142,7 +1143,8 @@ SBFrame::GetVariables (const lldb::SBVariablesOptions& options)
arguments, locals,
statics, in_scope_only,
include_runtime_support_values, use_dynamic);
-
+
+ std::set<VariableSP> variable_set;
Process *process = exe_ctx.GetProcessPtr();
if (target && process)
{
@@ -1186,6 +1188,12 @@ SBFrame::GetVariables (const lldb::SBVariablesOptions& options)
}
if (add_variable)
{
+ // Only add variables once so we don't end up with duplicates
+ if (variable_set.find(variable_sp) == variable_set.end())
+ variable_set.insert(variable_sp);
+ else
+ continue;
+
if (in_scope_only && !variable_sp->IsInScope(frame))
continue;
OpenPOWER on IntegriCloud