diff options
author | Johnny Chen <johnny.chen@apple.com> | 2011-03-03 01:41:57 +0000 |
---|---|---|
committer | Johnny Chen <johnny.chen@apple.com> | 2011-03-03 01:41:57 +0000 |
commit | d61816b5b8c5e0f5d5c9e6c5e6811bee59c98140 (patch) | |
tree | f51b3a5b57c08b2c2c7957f9803f66402c6b2d95 /lldb/test/python_api/process/TestProcessAPI.py | |
parent | ec845689049c89ffb7d021cc245774f0f21e6796 (diff) | |
download | bcm5719-llvm-d61816b5b8c5e0f5d5c9e6c5e6811bee59c98140.tar.gz bcm5719-llvm-d61816b5b8c5e0f5d5c9e6c5e6811bee59c98140.zip |
Add TestTargetAPI.py:
// When stopped on breakppint 1, and then 2, we can get the line entries using
// SBFrame API SBFrame.GetLineEntry(). We'll get the start addresses for the
// two line entries; with the start address (of SBAddress type), we can then
// resolve the symbol context using the SBTarget API
// SBTarget.ResolveSymbolContextForAddress().
//
// The two symbol context should point to the same symbol, i.e., 'a' function.
Add two utility functions to lldbutil.py:
o get_stopped_threads(process, reason):
return the list of threads with the specified stop reason or an empty list if not found
o get_stopped_thread(process, reason):
return the first thread with the given stop reason or None if not found
llvm-svn: 126916
Diffstat (limited to 'lldb/test/python_api/process/TestProcessAPI.py')
-rw-r--r-- | lldb/test/python_api/process/TestProcessAPI.py | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/lldb/test/python_api/process/TestProcessAPI.py b/lldb/test/python_api/process/TestProcessAPI.py index fd8b229553e..474ae062059 100644 --- a/lldb/test/python_api/process/TestProcessAPI.py +++ b/lldb/test/python_api/process/TestProcessAPI.py @@ -5,6 +5,7 @@ Test SBProcess APIs, including ReadMemory(), WriteMemory(), and others. import os, time import unittest2 import lldb +from lldbutil import get_stopped_thread from lldbtest import * class ProcessAPITestCase(TestBase): @@ -71,8 +72,9 @@ class ProcessAPITestCase(TestBase): error = lldb.SBError() self.process = target.Launch (self.dbg.GetListener(), None, None, os.ctermid(), os.ctermid(), os.ctermid(), None, 0, False, error) - thread = self.process.GetThreadAtIndex(0); - frame = thread.GetFrameAtIndex(0); + thread = get_stopped_thread(self.process, lldb.eStopReasonBreakpoint) + self.assertTrue(thread != None, "There should be a thread stopped due to breakpoint") + frame = thread.GetFrameAtIndex(0) # Get the SBValue for the global variable 'my_char'. val = frame.FindValue("my_char", lldb.eValueTypeVariableGlobal) @@ -111,8 +113,9 @@ class ProcessAPITestCase(TestBase): error = lldb.SBError() self.process = target.Launch (self.dbg.GetListener(), None, None, os.ctermid(), os.ctermid(), os.ctermid(), None, 0, False, error) - thread = self.process.GetThreadAtIndex(0); - frame = thread.GetFrameAtIndex(0); + thread = get_stopped_thread(self.process, lldb.eStopReasonBreakpoint) + self.assertTrue(thread != None, "There should be a thread stopped due to breakpoint") + frame = thread.GetFrameAtIndex(0) # Get the SBValue for the global variable 'my_char'. val = frame.FindValue("my_char", lldb.eValueTypeVariableGlobal) @@ -160,8 +163,9 @@ class ProcessAPITestCase(TestBase): error = lldb.SBError() self.process = target.Launch (self.dbg.GetListener(), None, None, os.ctermid(), os.ctermid(), os.ctermid(), None, 0, False, error) - thread = self.process.GetThreadAtIndex(0); - frame = thread.GetFrameAtIndex(0); + thread = get_stopped_thread(self.process, lldb.eStopReasonBreakpoint) + self.assertTrue(thread != None, "There should be a thread stopped due to breakpoint") + frame = thread.GetFrameAtIndex(0) # Get the SBValue for the global variable 'my_int'. val = frame.FindValue("my_int", lldb.eValueTypeVariableGlobal) |