Author: hdu
Date: Thu Feb 21 16:24:59 2013
New Revision: 1448706

URL: http://svn.apache.org/r1448706
Log:
lldb4aoo: add mechanism to provide/advertise LLDB helper functions

Modified:
    openoffice/trunk/main/solenv/inc/lldb4aoo.py

Modified: openoffice/trunk/main/solenv/inc/lldb4aoo.py
URL: 
http://svn.apache.org/viewvc/openoffice/trunk/main/solenv/inc/lldb4aoo.py?rev=1448706&r1=1448705&r2=1448706&view=diff
==============================================================================
--- openoffice/trunk/main/solenv/inc/lldb4aoo.py (original)
+++ openoffice/trunk/main/solenv/inc/lldb4aoo.py Thu Feb 21 16:24:59 2013
@@ -17,6 +17,34 @@ def __lldb_init_module( dbg, dict):
        # register a generic helper function for pimpl types
        dbg.HandleCommand( 'type summary add -F %s.%s -v -C yes -n PIMPL %s' % 
( __name__,'get_pimpl_info', ' '.join(pimpl_types)))
 
+       # add info about specific helper methods
+       # assume functions with docstrings are available for general consumption
+       helper_funcs = [v for (k,v) in globals().iteritems() if( not 
k.startswith('_') and callable(v) and v.__doc__)]
+       if helper_funcs:
+               print( 'Available AOO-specific helper functions:')
+               for hfunc in helper_funcs:
+                       shortdesc = hfunc.__doc__.splitlines()[0]
+                       print( '\t%s\t# "%s"' %(hfunc.__name__, shortdesc))
+               print( 'Run them with:')
+               for hfunc in helper_funcs[:4]:
+                       print( '\tscript %s.%s()' %(__name__, hfunc.__name__))
+
+# some helpers for use from interactive LLDB sessions
+
+import lldb
+
+def add_breakpoints():
+       'Setup breakpoints useful for AOO debugging'
+       dbg = lldb.debugger
+       if dbg.GetNumTargets() == 0:
+               return
+       # the list of interesting function breakpoints
+       aoo_breakfn = ['main', '__cxa_call_unexpected', 'objc_exception_throw']
+       aoo_breakfn += ['__cxa_throw']
+       # register breakpoints for function basenames
+       for b in aoo_breakfn:
+               dbg.HandleCommand( 'breakpoint set -b ' + b)
+
 
 # local functions for use by the AOO-type summary providers
 


Reply via email to