[Lldb-commits] [lldb] r178628 - <rdar://problem/13416800>

Greg Clayton gclayton at apple.com
Wed Apr 3 00:25:31 PDT 2013


Author: gclayton
Date: Wed Apr  3 02:25:30 2013
New Revision: 178628

URL: http://llvm.org/viewvc/llvm-project?rev=178628&view=rev
Log:
<rdar://problem/13416800>

ptr_refs command frequently doesn't work when run in large applicaton. This was due to the default timeout of 500ms. The timeouts have now been increased and all expression evaluations have been modified.


Modified:
    lldb/trunk/examples/darwin/heap_find/heap.py

Modified: lldb/trunk/examples/darwin/heap_find/heap.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/examples/darwin/heap_find/heap.py?rev=178628&r1=178627&r2=178628&view=diff
==============================================================================
--- lldb/trunk/examples/darwin/heap_find/heap.py (original)
+++ lldb/trunk/examples/darwin/heap_find/heap.py Wed Apr  3 02:25:30 2013
@@ -399,7 +399,11 @@ info''' % (options.max_frames, options.m
         expr = history_expr
     else:
         expr = single_expr
-    expr_sbvalue = frame.EvaluateExpression (expr)
+    expr_options = lldb.SBExpressionOptions()
+    expr_options.SetIgnoreBreakpoints(True);
+    expr_options.SetTimeoutInMicroSeconds (5*1000*1000) # 5 second timeout
+    expr_options.SetTryAllThreads (True)
+    expr_sbvalue = frame.EvaluateExpression (expr, expr_options)
     if options.verbose:
         print "expression:"
         print expr
@@ -431,7 +435,12 @@ def display_match_results (result, optio
     if not frame:
         result.AppendMessage('error: invalid frame')
         return 0
-    expr_sbvalue = frame.EvaluateExpression (expr)
+    expr_options = lldb.SBExpressionOptions()
+    expr_options.SetIgnoreBreakpoints(True);
+    expr_options.SetFetchDynamicValue(lldb.eNoDynamicValues);
+    expr_options.SetTimeoutInMicroSeconds (30*1000*1000) # 30 second timeout
+    expr_options.SetTryAllThreads (False)
+    expr_sbvalue = frame.EvaluateExpression (expr, expr_options)
     if options.verbose:
         print "expression:"
         print expr
@@ -977,7 +986,11 @@ def objc_refs(debugger, command, result,
     if options.format == None: 
         options.format = "A" # 'A' is "address" format
 
-    num_objc_classes_value = frame.EvaluateExpression("(int)objc_getClassList((void *)0, (int)0)")
+    expr_options = lldb.SBExpressionOptions()
+    expr_options.SetIgnoreBreakpoints(True);
+    expr_options.SetTimeoutInMicroSeconds (3*1000*1000) # 3 second infinite timeout
+    expr_options.SetTryAllThreads (True)
+    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())
         return
@@ -1074,7 +1087,11 @@ int nc = (int)objc_getClassList(baton.cl
         # Iterate through all of our ObjC class name arguments
         for class_name in args:
             addr_expr_str = "(void *)[%s class]" % class_name
-            expr_sbvalue = frame.EvaluateExpression (addr_expr_str)
+            expr_options = lldb.SBExpressionOptions()
+            expr_options.SetIgnoreBreakpoints(True);
+            expr_options.SetTimeoutInMicroSeconds (1*1000*1000) # 1 second timeout
+            expr_options.SetTryAllThreads (True)
+            expr_sbvalue = frame.EvaluateExpression (addr_expr_str, expr_options)
             if expr_sbvalue.error.Success():
                 isa = expr_sbvalue.unsigned
                 if isa:





More information about the lldb-commits mailing list