Specify ObjC++ when running heap commands in case we are stopped in a frame with another language.
This ensures the expression gets runs with the correct language.
<rdar://problem/18816647>
llvm-svn: 226041
diff --git a/lldb/examples/darwin/heap_find/heap.py b/lldb/examples/darwin/heap_find/heap.py
index a727375..2ebff60 100644
--- a/lldb/examples/darwin/heap_find/heap.py
+++ b/lldb/examples/darwin/heap_find/heap.py
@@ -406,6 +406,7 @@
expr_options.SetIgnoreBreakpoints(True);
expr_options.SetTimeoutInMicroSeconds (5*1000*1000) # 5 second timeout
expr_options.SetTryAllThreads (True)
+ expr_options.SetLanguage(lldb.eLanguageTypeObjC_plus_plus)
expr_sbvalue = frame.EvaluateExpression (expr, expr_options)
if options.verbose:
print "expression:"
@@ -443,6 +444,7 @@
expr_options.SetFetchDynamicValue(lldb.eNoDynamicValues);
expr_options.SetTimeoutInMicroSeconds (30*1000*1000) # 30 second timeout
expr_options.SetTryAllThreads (False)
+ expr_options.SetLanguage (lldb.eLanguageTypeObjC_plus_plus)
expr_sbvalue = frame.EvaluateExpression (expr, expr_options)
if options.verbose:
print "expression:"
@@ -990,6 +992,7 @@
expr_options.SetIgnoreBreakpoints(True);
expr_options.SetTimeoutInMicroSeconds (3*1000*1000) # 3 second infinite timeout
expr_options.SetTryAllThreads (True)
+ expr_options.SetLanguage(lldb.eLanguageTypeObjC_plus_plus)
num_objc_classes_value = frame.EvaluateExpression("(int)objc_getClassList((void *)0, (int)0)", expr_options)
if not num_objc_classes_value.error.Success():
result.AppendMessage('error: %s' % num_objc_classes_value.error.GetCString())
@@ -1093,6 +1096,7 @@
expr_options.SetIgnoreBreakpoints(True);
expr_options.SetTimeoutInMicroSeconds (1*1000*1000) # 1 second timeout
expr_options.SetTryAllThreads (True)
+ expr_options.SetLanguage(lldb.eLanguageTypeObjC_plus_plus)
expr_sbvalue = frame.EvaluateExpression (addr_expr_str, expr_options)
if expr_sbvalue.error.Success():
isa = expr_sbvalue.unsigned