summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lldb/scripts/Python/modify-python-lldb.py21
-rw-r--r--lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py29
2 files changed, 19 insertions, 31 deletions
diff --git a/lldb/scripts/Python/modify-python-lldb.py b/lldb/scripts/Python/modify-python-lldb.py
index 6f211b24beb..3a784a6e74c 100644
--- a/lldb/scripts/Python/modify-python-lldb.py
+++ b/lldb/scripts/Python/modify-python-lldb.py
@@ -103,22 +103,15 @@ linked_list_iter_def = '''
For example,
- # Test function to determine end of list.
def eol(val):
- if not val:
+ \'\'\'Test function to determine end of list.\'\'\'
+ # End of list is reached if either the value object is invalid
+ # or it corresponds to a null pointer.
+ if not val or int(val.GetValue(), 16) == 0:
return True
- try:
- # Test the semantics of the item we got.
- id = val.GetChildMemberWithName("id")
- if int(id.GetValue()) > 0:
- return False
- except:
- pass
-
- # If we fall through to here. It could be that exception
- # occurred or the "id" child member does not qualify as a
- # valid item. Return True for EOL.
- return True
+
+ # Otherwise, return False.
+ return False
# Get Frame #0.
...
diff --git a/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py b/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
index 77801d37477..d915f99d29a 100644
--- a/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
+++ b/lldb/test/python_api/value/linked_list/TestValueAPILinkedList.py
@@ -55,22 +55,14 @@ class ValueAsLinkedListTestCase(TestBase):
self.assertTrue(process, PROCESS_IS_VALID)
def eol(val):
- """Test to determine end of list."""
- if not val:
+ """Test function to determine end of list."""
+ # End of list is reached if either the value object is invalid
+ # or it corresponds to a null pointer.
+ if not val or int(val.GetValue(), 16) == 0:
return True
- try:
- id = val.GetChildMemberWithName("id")
- if int(id.GetValue()) > 0:
- return False
- except:
- #exc_type, exc_value, exc_tb = sys.exc_info()
- #traceback.print_exception(exc_type, exc_value, exc_tb)
- pass
-
- # If we fall through to here. It could be that exception
- # occurred or the "id" child member does not qualify as a
- # valid item. Return True for EOL.
- return True
+
+ # Otherwise, return False.
+ return False
# Get Frame #0.
self.assertTrue(process.GetState() == lldb.eStateStopped)
@@ -90,12 +82,15 @@ class ValueAsLinkedListTestCase(TestBase):
cvf = lldbutil.ChildVisitingFormatter(indent_child=2)
for t in task_head.linked_list_iter('next', eol):
self.assertTrue(t, VALID_VARIABLE)
- list.append(int(t.GetChildMemberWithName("id").GetValue()))
+ # Make sure that 'next' corresponds to an SBValue with pointer type.
+ self.assertTrue(t.TypeIsPointerType())
if self.TraceOn():
print cvf.format(t)
+ list.append(int(t.GetChildMemberWithName("id").GetValue()))
# Sanity checks that the we visited all the items (no more, no less).
- #print "list:", list
+ if self.TraceOn():
+ print "visited IDs:", list
self.assertTrue(visitedIDs == list)
if __name__ == '__main__':
OpenPOWER on IntegriCloud