[lldb-dev] Linkage issue?
jared.carlson23 at gmail.com
Thu Aug 30 14:46:15 PDT 2012
Since I'm on a roll, might as well ask another..
I can't seem to restart my process via process.Continue().. here's the code:
def exercise( execfile, args, cmd ):
dbg = lldb.SBDebugger.Create()
target = dbg.CreateTarget( execfile )
bp1 = target.BreakpointCreateByName('override')
if not bp1.IsValid():
print "Breakpoint is not valid"
ci = dbg.GetCommandInterpreter()
res = lldb.SBCommandReturnObject()
process = target.LaunchSimple( args,None,os.getcwd() )
process = target.GetProcess()
while process.GetState() == lldb.eStateStopped:
ci.HandleCommand( cmd, res )
err = process.Continue()
When I run, the cmd (a backtrace) runs just fine but the process.Continue() fails:
* thread #1: tid = 0x1d07, 0x000000010ac75db7 simple2`override(int) + 7 at simple.cxx:45, stop reason = breakpoint 1.1
frame #0: 0x000000010ac75db7 simple2`override(int) + 7 at simple.cxx:45
frame #1: 0x000000010ac75d13 simple2`check(int) + 19 at simple.cxx:29
frame #2: 0x000000010ac75cbe simple2`main + 46 at simple.cxx:18
frame #3: 0x00007fff912077e1 libdyld.dylib`start + 1
error: Resume request failed - process still running.
Do I need to do something to the break point to allow the process to continue?? The code I see under the testing directories seems to not do anything in particular…
Thanks for any help,
On Aug 30, 2012, at 4:56 PM, Jared Carlson <jared.carlson23 at gmail.com> wrote:
> Just noticed that… need more sleep ;)
> - Jared
> On Aug 30, 2012, at 4:54 PM, Filipe Cabecinhas <filcab at gmail.com> wrote:
>> The correct name is 'IsValid' (capital 'I'). ;-)
>> On Thursday, August 30, 2012 at 9:46 PM, Jared Carlson wrote:
>>> I'm trying to run some lldb python code outside of Xcode and I'm running into an issue..
>>> So I used PYTHONPATH to point to the lldv module within Xcode.app (This is on Mountain Lion) and I can import lldv, etc just fine from the command line but when I try to use breakpoints or some other code I've seen others use I run into swig issues, for example:
>>> bp1 = target.BreakpointCreateByName('override')
>>> <lldb.SBBreakpoint; proxy of <Swig Object of type 'lldb::SBBreakpoint *' at 0x10d80dc30> >
>>> Traceback (most recent call last):
>>> File "<stdin>", line 1, in <module>
>>> File "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/Python/lldb/__init__.py", line 1119, in <lambda>
>>> __getattr__ = lambda self, name: _swig_getattr(self, SBBreakpoint, name)
>>> File "/Applications/Xcode.app/Contents/SharedFrameworks/LLDB.framework/Versions/A/Resources/Python/lldb/__init__.py", line 78, in _swig_getattr
>>> raise AttributeError(name)
>>> AttributeError: isValid
>>> I can create various variables, etc… but I notice it seems like I'm missing a few odds and ends.. I would guess that this is a linkage issue but am a little stumped as to why it seems I'm getting most of the functionality I expect.
>>> Thanks for any help you can give.
>>> - Jared
>>> lldb-dev mailing list
>>> lldb-dev at cs.uiuc.edu (mailto:lldb-dev at cs.uiuc.edu)
More information about the lldb-dev