Hi,
I made a script for lldb last year that allowed me to plot a custom object as a
curve from Xcode’s lldb prompt. Worked very well for a year, but no more. Has
anything changed in the EvaluateExpression syntax? Are there linker options I
need to activate in my target c++ program?
Thanks for any help,
Niels
Here's the script, it outputs:
- DEBUG - res is No value
- DEBUG - fname is No value
- DEBUG - error is error: <NULL>
import lldb
import commands
import optparse
import shlex
import logging
def plot(debugger, command, result, dict):
logging.basicConfig(level=logging.DEBUG, format='%(asctime)s -
%(levelname)s - %(message)s')
command_args = shlex.split(command)
usage = "usage: %prog objectName "
description=‘''plot'''
parser = optparse.OptionParser(description=description,
prog='plot',usage=usage)
try:
(options, args) = parser.parse_args(command_args)
except:
print '"plot" exception'
return
la = len(args)
print 'len args = %d' % la
if len(args) == 1:
ecom = “MyNamespace::MyClass::MyStaticPlotFunction(%s)" %
args[0]
res = lldb.frame.EvaluateExpression(ecom, 1)
fname =
lldb.frame.EvaluateExpression("MyNamespace::MyClass::GetStaticPlotFileName()")
error = lldb.SBError()
logging.debug("res is %s", res);
logging.debug("fname is %s", fname);
logging.debug("error is %s", error);
if __name__ == '__main__':
# This script is being run from the command line, create a debugger in case
we are
# going to use any debugger functions in our function.
lldb.debugger = lldb.SBDebugger.Create()
plot (sys.argv)
def __lldb_init_module (debugger, dict):
# This initializer is being run from LLDB in the embedded command
interpreter
# Add any commands contained in this module to LLDB
debugger.HandleCommand('command script add -f plot.plot plot')
print '"plot" command installed, type "plot --help" for detailed help'
_______________________________________________
lldb-dev mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/lldb-dev