[Lldb-commits] [lldb] r135355 - in /lldb/trunk: include/lldb/API/SBTarget.h scripts/Python/interface/ scripts/Python/interface/SBTarget.i scripts/Python/modify-python-lldb.py scripts/lldb.swig
Johnny Chen
johnny.chen at apple.com
Sat Jul 16 14:15:39 PDT 2011
Author: johnny
Date: Sat Jul 16 16:15:39 2011
New Revision: 135355
URL: http://llvm.org/viewvc/llvm-project?rev=135355&view=rev
Log:
Create an interface file for SBTarget named SBTarget.i which relieves SBTarget.h
of the duty of having SWIG docstring features and multiline string literals
embedded within.
lldb.swig now %include .../SBTarget.i, instead of .../SBTarget.h. Will create
other interface files and transition them over.
Also update modify-python-lldb.py to better handle the trailing blank line right
before the ending '"""' Python docstring delimiter.
Added:
lldb/trunk/scripts/Python/interface/
lldb/trunk/scripts/Python/interface/SBTarget.i
Modified:
lldb/trunk/include/lldb/API/SBTarget.h
lldb/trunk/scripts/Python/modify-python-lldb.py
lldb/trunk/scripts/lldb.swig
Modified: lldb/trunk/include/lldb/API/SBTarget.h
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/include/lldb/API/SBTarget.h?rev=135355&r1=135354&r2=135355&view=diff
==============================================================================
--- lldb/trunk/include/lldb/API/SBTarget.h (original)
+++ lldb/trunk/include/lldb/API/SBTarget.h Sat Jul 16 16:15:39 2011
@@ -18,41 +18,8 @@
class SBBreakpoint;
-#ifdef SWIG
-%feature("docstring",
-"Represents the target program running under the debugger.
-
-SBTarget supports module and breakpoint iterations. For example,
-
- for m in target.module_iter():
- print m
-
-produces:
-
-(x86_64) /Volumes/data/lldb/svn/trunk/test/python_api/lldbutil/iter/a.out
-(x86_64) /usr/lib/dyld
-(x86_64) /usr/lib/libstdc++.6.dylib
-(x86_64) /usr/lib/libSystem.B.dylib
-(x86_64) /usr/lib/system/libmathCommon.A.dylib
-(x86_64) /usr/lib/libSystem.B.dylib(__commpage)
-
-and,
-
- for b in target.breakpoint_iter():
- print b
-
-produces:
-
-SBBreakpoint: id = 1, file ='main.cpp', line = 66, locations = 1
-SBBreakpoint: id = 2, file ='main.cpp', line = 85, locations = 1
-"
- ) SBTarget;
-#endif
class SBTarget
{
-#ifdef SWIG
- %feature("autodoc", "1");
-#endif
public:
//------------------------------------------------------------------
// Broadcaster bits.
@@ -87,9 +54,6 @@
lldb::SBProcess
GetProcess ();
-#ifdef SWIG
- %feature("docstring", "
-#endif
//------------------------------------------------------------------
/// Launch a new process.
///
@@ -146,23 +110,6 @@
/// @return
/// A process object for the newly created process.
//------------------------------------------------------------------
-#ifdef SWIG
-
-For example,
-
- process = target.Launch(self.dbg.GetListener(), None, None,
- None, '/tmp/stdout.txt', None,
- None, 0, False, error)
-
-launches a new process by passing nothing for both the args and the envs
-and redirect the standard output of the inferior to the /tmp/stdout.txt
-file. It does not specify a working directory so that the debug server
-will use its idea of what the current working directory is for the
-inferior. Also, we ask the debugger not to stop the inferior at the
-entry point. If no breakpoint is specified for the inferior, it should
-run to completion if no user interaction is required.
- ") Launch;
-#endif
lldb::SBProcess
Launch (SBListener &listener,
char const **argv,
@@ -176,9 +123,6 @@
lldb::SBError& error);
-#ifdef SWIG
- %feature("docstring", "
-#endif
//------------------------------------------------------------------
/// Launch a new process with sensible defaults.
///
@@ -205,24 +149,11 @@
/// @return
/// A process object for the newly created process.
//------------------------------------------------------------------
-#ifdef SWIG
-
-For example,
-
- process = target.LaunchSimple(['X', 'Y', 'Z'], None, os.getcwd())
-
-launches a new process by passing 'X', 'Y', 'Z' as the args to the
-executable.
- ") LaunchSimple;
-#endif
lldb::SBProcess
LaunchSimple (const char **argv,
const char **envp,
const char *working_directory);
-#ifdef SWIG
- %feature("docstring", "
-#endif
//------------------------------------------------------------------
/// Attach to process with pid.
///
@@ -241,17 +172,11 @@
/// @return
/// A process object for the attached process.
//------------------------------------------------------------------
-#ifdef SWIG
- ") AttachToProcessWithID;
-#endif
lldb::SBProcess
AttachToProcessWithID (SBListener &listener,
lldb::pid_t pid,
lldb::SBError& error);
-#ifdef SWIG
- %feature("docstring", "
-#endif
//------------------------------------------------------------------
/// Attach to process with name.
///
@@ -273,18 +198,12 @@
/// @return
/// A process object for the attached process.
//------------------------------------------------------------------
-#ifdef SWIG
- ") AttachToProcessWithName;
-#endif
lldb::SBProcess
AttachToProcessWithName (SBListener &listener,
const char *name,
bool wait_for,
lldb::SBError& error);
-#ifdef SWIG
- %feature("docstring", "
-#endif
//------------------------------------------------------------------
/// Connect to a remote debug server with url.
///
@@ -306,9 +225,6 @@
/// @return
/// A process object for the connected process.
//------------------------------------------------------------------
-#ifdef SWIG
- ") ConnectRemote;
-#endif
lldb::SBProcess
ConnectRemote (SBListener &listener,
const char *url,
@@ -330,9 +246,6 @@
lldb::SBModule
FindModule (const lldb::SBFileSpec &file_spec);
-#ifdef SWIG
- %feature("docstring", "
-#endif
//------------------------------------------------------------------
/// Find functions by name.
///
@@ -357,18 +270,12 @@
/// @return
/// The number of matches added to \a sc_list.
//------------------------------------------------------------------
-#ifdef SWIG
- ") FindFunctions;
-#endif
uint32_t
FindFunctions (const char *name,
uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits
bool append,
lldb::SBSymbolContextList& sc_list);
-#ifdef SWIG
- %feature("docstring", "
-#endif
//------------------------------------------------------------------
/// Find global and static variables by name.
///
@@ -382,9 +289,6 @@
/// @return
/// A list of matched variables in an SBValueList.
//------------------------------------------------------------------
-#ifdef SWIG
- ") FindGlobalVariables;
-#endif
lldb::SBValueList
FindGlobalVariables (const char *name,
uint32_t max_matches);
Added: lldb/trunk/scripts/Python/interface/SBTarget.i
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/interface/SBTarget.i?rev=135355&view=auto
==============================================================================
--- lldb/trunk/scripts/Python/interface/SBTarget.i (added)
+++ lldb/trunk/scripts/Python/interface/SBTarget.i Sat Jul 16 16:15:39 2011
@@ -0,0 +1,449 @@
+//===-- SWIG Interface for SBTarget -----------------------------*- C++ -*-===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+//===----------------------------------------------------------------------===//
+
+namespace lldb {
+
+%feature("docstring",
+"Represents the target program running under the debugger.
+
+SBTarget supports module and breakpoint iterations. For example,
+
+ for m in target.module_iter():
+ print m
+
+produces:
+
+(x86_64) /Volumes/data/lldb/svn/trunk/test/python_api/lldbutil/iter/a.out
+(x86_64) /usr/lib/dyld
+(x86_64) /usr/lib/libstdc++.6.dylib
+(x86_64) /usr/lib/libSystem.B.dylib
+(x86_64) /usr/lib/system/libmathCommon.A.dylib
+(x86_64) /usr/lib/libSystem.B.dylib(__commpage)
+
+and,
+
+ for b in target.breakpoint_iter():
+ print b
+
+produces:
+
+SBBreakpoint: id = 1, file ='main.cpp', line = 66, locations = 1
+SBBreakpoint: id = 2, file ='main.cpp', line = 85, locations = 1
+"
+ ) SBTarget;
+class SBTarget
+{
+ %feature("autodoc", "1");
+public:
+ //------------------------------------------------------------------
+ // Broadcaster bits.
+ //------------------------------------------------------------------
+ enum
+ {
+ eBroadcastBitBreakpointChanged = (1 << 0),
+ eBroadcastBitModulesLoaded = (1 << 1),
+ eBroadcastBitModulesUnloaded = (1 << 2)
+ };
+
+ //------------------------------------------------------------------
+ // Constructors
+ //------------------------------------------------------------------
+ SBTarget ();
+
+ SBTarget (const lldb::SBTarget& rhs);
+
+#ifndef SWIG
+ const lldb::SBTarget&
+ operator = (const lldb::SBTarget& rhs);
+#endif
+
+ //------------------------------------------------------------------
+ // Destructor
+ //------------------------------------------------------------------
+ ~SBTarget();
+
+ bool
+ IsValid() const;
+
+ lldb::SBProcess
+ GetProcess ();
+
+ %feature("docstring", "
+ //------------------------------------------------------------------
+ /// Launch a new process.
+ ///
+ /// Launch a new process by spawning a new process using the
+ /// target object's executable module's file as the file to launch.
+ /// Arguments are given in \a argv, and the environment variables
+ /// are in \a envp. Standard input and output files can be
+ /// optionally re-directed to \a stdin_path, \a stdout_path, and
+ /// \a stderr_path.
+ ///
+ /// @param[in] listener
+ /// An optional listener that will receive all process events.
+ /// If \a listener is valid then \a listener will listen to all
+ /// process events. If not valid, then this target's debugger
+ /// (SBTarget::GetDebugger()) will listen to all process events.
+ ///
+ /// @param[in] argv
+ /// The argument array.
+ ///
+ /// @param[in] envp
+ /// The environment array.
+ ///
+ /// @param[in] launch_flags
+ /// Flags to modify the launch (@see lldb::LaunchFlags)
+ ///
+ /// @param[in] stdin_path
+ /// The path to use when re-directing the STDIN of the new
+ /// process. If all stdXX_path arguments are NULL, a pseudo
+ /// terminal will be used.
+ ///
+ /// @param[in] stdout_path
+ /// The path to use when re-directing the STDOUT of the new
+ /// process. If all stdXX_path arguments are NULL, a pseudo
+ /// terminal will be used.
+ ///
+ /// @param[in] stderr_path
+ /// The path to use when re-directing the STDERR of the new
+ /// process. If all stdXX_path arguments are NULL, a pseudo
+ /// terminal will be used.
+ ///
+ /// @param[in] working_directory
+ /// The working directory to have the child process run in
+ ///
+ /// @param[in] launch_flags
+ /// Some launch options specified by logical OR'ing
+ /// lldb::LaunchFlags enumeration values together.
+ ///
+ /// @param[in] stop_at_endtry
+ /// If false do not stop the inferior at the entry point.
+ ///
+ /// @param[out]
+ /// An error object. Contains the reason if there is some failure.
+ ///
+ /// @return
+ /// A process object for the newly created process.
+ //------------------------------------------------------------------
+
+ For example,
+
+ process = target.Launch(self.dbg.GetListener(), None, None,
+ None, '/tmp/stdout.txt', None,
+ None, 0, False, error)
+
+ launches a new process by passing nothing for both the args and the envs
+ and redirect the standard output of the inferior to the /tmp/stdout.txt
+ file. It does not specify a working directory so that the debug server
+ will use its idea of what the current working directory is for the
+ inferior. Also, we ask the debugger not to stop the inferior at the
+ entry point. If no breakpoint is specified for the inferior, it should
+ run to completion if no user interaction is required.
+ ") Launch;
+ lldb::SBProcess
+ Launch (SBListener &listener,
+ char const **argv,
+ char const **envp,
+ const char *stdin_path,
+ const char *stdout_path,
+ const char *stderr_path,
+ const char *working_directory,
+ uint32_t launch_flags, // See LaunchFlags
+ bool stop_at_entry,
+ lldb::SBError& error);
+
+ %feature("docstring", "
+ //------------------------------------------------------------------
+ /// Launch a new process with sensible defaults.
+ ///
+ /// @param[in] argv
+ /// The argument array.
+ ///
+ /// @param[in] envp
+ /// The environment array.
+ ///
+ /// @param[in] working_directory
+ /// The working directory to have the child process run in
+ ///
+ /// Default: listener
+ /// Set to the target's debugger (SBTarget::GetDebugger())
+ ///
+ /// Default: launch_flags
+ /// Empty launch flags
+ ///
+ /// Default: stdin_path
+ /// Default: stdout_path
+ /// Default: stderr_path
+ /// A pseudo terminal will be used.
+ ///
+ /// @return
+ /// A process object for the newly created process.
+ //------------------------------------------------------------------
+
+ For example,
+
+ process = target.LaunchSimple(['X', 'Y', 'Z'], None, os.getcwd())
+
+ launches a new process by passing 'X', 'Y', 'Z' as the args to the
+ executable.
+ ") LaunchSimple;
+ lldb::SBProcess
+ LaunchSimple (const char **argv,
+ const char **envp,
+ const char *working_directory);
+
+ %feature("docstring", "
+ //------------------------------------------------------------------
+ /// Attach to process with pid.
+ ///
+ /// @param[in] listener
+ /// An optional listener that will receive all process events.
+ /// If \a listener is valid then \a listener will listen to all
+ /// process events. If not valid, then this target's debugger
+ /// (SBTarget::GetDebugger()) will listen to all process events.
+ ///
+ /// @param[in] pid
+ /// The process ID to attach to.
+ ///
+ /// @param[out]
+ /// An error explaining what went wrong if attach fails.
+ ///
+ /// @return
+ /// A process object for the attached process.
+ //------------------------------------------------------------------
+ ") AttachToProcessWithID;
+ lldb::SBProcess
+ AttachToProcessWithID (SBListener &listener,
+ lldb::pid_t pid,
+ lldb::SBError& error);
+
+ %feature("docstring", "
+ //------------------------------------------------------------------
+ /// Attach to process with name.
+ ///
+ /// @param[in] listener
+ /// An optional listener that will receive all process events.
+ /// If \a listener is valid then \a listener will listen to all
+ /// process events. If not valid, then this target's debugger
+ /// (SBTarget::GetDebugger()) will listen to all process events.
+ ///
+ /// @param[in] name
+ /// Basename of process to attach to.
+ ///
+ /// @param[in] wait_for
+ /// If true wait for a new instance of 'name' to be launched.
+ ///
+ /// @param[out]
+ /// An error explaining what went wrong if attach fails.
+ ///
+ /// @return
+ /// A process object for the attached process.
+ //------------------------------------------------------------------
+ ") AttachToProcessWithName;
+ lldb::SBProcess
+ AttachToProcessWithName (SBListener &listener,
+ const char *name,
+ bool wait_for,
+ lldb::SBError& error);
+
+ %feature("docstring", "
+ //------------------------------------------------------------------
+ /// Connect to a remote debug server with url.
+ ///
+ /// @param[in] listener
+ /// An optional listener that will receive all process events.
+ /// If \a listener is valid then \a listener will listen to all
+ /// process events. If not valid, then this target's debugger
+ /// (SBTarget::GetDebugger()) will listen to all process events.
+ ///
+ /// @param[in] url
+ /// The url to connect to, e.g., 'connect://localhost:12345'.
+ ///
+ /// @param[in] plugin_name
+ /// The plugin name to be used; can be NULL.
+ ///
+ /// @param[out]
+ /// An error explaining what went wrong if the connect fails.
+ ///
+ /// @return
+ /// A process object for the connected process.
+ //------------------------------------------------------------------
+ ") ConnectRemote;
+ lldb::SBProcess
+ ConnectRemote (SBListener &listener,
+ const char *url,
+ const char *plugin_name,
+ SBError& error);
+
+ lldb::SBFileSpec
+ GetExecutable ();
+
+ uint32_t
+ GetNumModules () const;
+
+ lldb::SBModule
+ GetModuleAtIndex (uint32_t idx);
+
+ lldb::SBDebugger
+ GetDebugger() const;
+
+ lldb::SBModule
+ FindModule (const lldb::SBFileSpec &file_spec);
+
+ %feature("docstring", "
+ //------------------------------------------------------------------
+ /// Find functions by name.
+ ///
+ /// @param[in] name
+ /// The name of the function we are looking for.
+ ///
+ /// @param[in] name_type_mask
+ /// A logical OR of one or more FunctionNameType enum bits that
+ /// indicate what kind of names should be used when doing the
+ /// lookup. Bits include fully qualified names, base names,
+ /// C++ methods, or ObjC selectors.
+ /// See FunctionNameType for more details.
+ ///
+ /// @param[in] append
+ /// If true, any matches will be appended to \a sc_list, else
+ /// matches replace the contents of \a sc_list.
+ ///
+ /// @param[out] sc_list
+ /// A symbol context list that gets filled in with all of the
+ /// matches.
+ ///
+ /// @return
+ /// The number of matches added to \a sc_list.
+ //------------------------------------------------------------------
+ ") FindFunctions;
+ uint32_t
+ FindFunctions (const char *name,
+ uint32_t name_type_mask, // Logical OR one or more FunctionNameType enum bits
+ bool append,
+ lldb::SBSymbolContextList& sc_list);
+
+ %feature("docstring", "
+ //------------------------------------------------------------------
+ /// Find global and static variables by name.
+ ///
+ /// @param[in] name
+ /// The name of the global or static variable we are looking
+ /// for.
+ ///
+ /// @param[in] max_matches
+ /// Allow the number of matches to be limited to \a max_matches.
+ ///
+ /// @return
+ /// A list of matched variables in an SBValueList.
+ //------------------------------------------------------------------
+ ") FindGlobalVariables;
+ lldb::SBValueList
+ FindGlobalVariables (const char *name,
+ uint32_t max_matches);
+
+ void
+ Clear ();
+
+ bool
+ ResolveLoadAddress (lldb::addr_t vm_addr,
+ lldb::SBAddress& addr);
+
+ SBSymbolContext
+ ResolveSymbolContextForAddress (const SBAddress& addr,
+ uint32_t resolve_scope);
+
+ lldb::SBBreakpoint
+ BreakpointCreateByLocation (const char *file, uint32_t line);
+
+ lldb::SBBreakpoint
+ BreakpointCreateByLocation (const lldb::SBFileSpec &file_spec, uint32_t line);
+
+ lldb::SBBreakpoint
+ BreakpointCreateByName (const char *symbol_name, const char *module_name = NULL);
+
+ lldb::SBBreakpoint
+ BreakpointCreateByRegex (const char *symbol_name_regex, const char *module_name = NULL);
+
+ lldb::SBBreakpoint
+ BreakpointCreateByAddress (addr_t address);
+
+ uint32_t
+ GetNumBreakpoints () const;
+
+ lldb::SBBreakpoint
+ GetBreakpointAtIndex (uint32_t idx) const;
+
+ bool
+ BreakpointDelete (break_id_t break_id);
+
+ lldb::SBBreakpoint
+ FindBreakpointByID (break_id_t break_id);
+
+ bool
+ EnableAllBreakpoints ();
+
+ bool
+ DisableAllBreakpoints ();
+
+ bool
+ DeleteAllBreakpoints ();
+
+ lldb::SBBroadcaster
+ GetBroadcaster () const;
+
+#ifndef SWIG
+ bool
+ operator == (const lldb::SBTarget &rhs) const;
+
+ bool
+ operator != (const lldb::SBTarget &rhs) const;
+
+#endif
+
+#ifndef SWIG
+ bool
+ GetDescription (lldb::SBStream &description, lldb::DescriptionLevel description_level);
+#endif
+
+ bool
+ GetDescription (lldb::SBStream &description, lldb::DescriptionLevel description_level) const;
+
+protected:
+ friend class SBAddress;
+ friend class SBDebugger;
+ friend class SBFunction;
+ friend class SBProcess;
+ friend class SBSymbol;
+ friend class SBModule;
+
+ //------------------------------------------------------------------
+ // Constructors are private, use static Target::Create function to
+ // create an instance of this class.
+ //------------------------------------------------------------------
+
+ SBTarget (const lldb::TargetSP& target_sp);
+
+ void
+ reset (const lldb::TargetSP& target_sp);
+
+ lldb_private::Target *
+ operator ->() const;
+
+ lldb_private::Target *
+ get() const;
+
+private:
+ //------------------------------------------------------------------
+ // For Target only
+ //------------------------------------------------------------------
+
+ lldb::TargetSP m_opaque_sp;
+};
+
+} // namespace lldb
Modified: lldb/trunk/scripts/Python/modify-python-lldb.py
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/Python/modify-python-lldb.py?rev=135355&r1=135354&r2=135355&view=diff
==============================================================================
--- lldb/trunk/scripts/Python/modify-python-lldb.py (original)
+++ lldb/trunk/scripts/Python/modify-python-lldb.py Sat Jul 16 16:15:39 2011
@@ -36,9 +36,8 @@
c_endif_swig = "#endif"
c_ifdef_swig = "#ifdef SWIG"
c_comment_marker = "//------------"
-trailing_blank_line = ' '
# The pattern for recognizing the doxygen comment block line.
-doxygen_comment_start = re.compile("^\s*( /// ?)")
+doxygen_comment_start = re.compile("^\s*(/// ?)")
# The demarcation point for turning on/off residue removal state.
# When bracketed by the lines, the CLEANUP_DOCSTRING state (see below) is ON.
toggle_docstring_cleanup_line = ' """'
@@ -150,8 +149,31 @@
frag.write("self.{0}() == other.{0}()".format(list[i]))
return frag.getvalue()
+class NewContent(StringIO.StringIO):
+ """Simple facade to keep track of the previous line to be committed."""
+ def __init__(self):
+ StringIO.StringIO.__init__(self)
+ self.prev_line = None
+ def add_line(self, a_line):
+ """Add a line to the content, if there is a previous line, commit it."""
+ if self.prev_line != None:
+ print >> self, self.prev_line
+ self.prev_line = a_line
+ def del_line(self):
+ """Forget about the previous line, do not commit it."""
+ self.prev_line = None
+ def del_blank_line(self):
+ """Forget about the previous line if it is a blank line."""
+ if self.prev_line != None and not self.prev_line.strip():
+ self.prev_line = None
+ def finish(self):
+ """Call this when you're finished with populating content."""
+ if self.prev_line != None:
+ print >> self, self.prev_line
+ self.prev_line = None
+
# The new content will have the iteration protocol defined for our lldb objects.
-new_content = StringIO.StringIO()
+new_content = NewContent()
with open(output_name, 'r') as f_in:
content = f_in.read()
@@ -200,6 +222,9 @@
# CLEANUP_DOCSTRING state or out of it.
if line == toggle_docstring_cleanup_line:
if state & CLEANUP_DOCSTRING:
+ # Special handling of the trailing blank line right before the '"""'
+ # end docstring marker.
+ new_content.del_blank_line()
state ^= CLEANUP_DOCSTRING
else:
state |= CLEANUP_DOCSTRING
@@ -208,7 +233,7 @@
match = class_pattern.search(line)
# Inserts the lldb_iter() definition before the first class definition.
if not lldb_iter_defined and match:
- print >> new_content, lldb_iter_def
+ new_content.add_line(lldb_iter_def)
lldb_iter_defined = True
# If we are at the beginning of the class definitions, prepare to
@@ -231,15 +256,15 @@
#
# But note that SBTarget has two types of iterations.
if cls == "SBTarget":
- print >> new_content, module_iter % (d[cls]['module'])
- print >> new_content, breakpoint_iter % (d[cls]['breakpoint'])
+ new_content.add_line(module_iter % (d[cls]['module']))
+ new_content.add_line(breakpoint_iter % (d[cls]['breakpoint']))
else:
if (state & DEFINING_ITERATOR):
- print >> new_content, iter_def % d[cls]
- print >> new_content, len_def % d[cls][0]
+ new_content.add_line(iter_def % d[cls])
+ new_content.add_line(len_def % d[cls][0])
if (state & DEFINING_EQUALITY):
- print >> new_content, eq_def % (cls, list_to_frag(e[cls]))
- print >> new_content, ne_def
+ new_content.add_line(eq_def % (cls, list_to_frag(e[cls])))
+ new_content.add_line(ne_def)
# Next state will be NORMAL.
state = NORMAL
@@ -248,9 +273,10 @@
# Cleanse the lldb.py of the autodoc'ed residues.
if c_ifdef_swig in line or c_endif_swig in line:
continue
- # As well as the comment marker line and trailing blank line.
- if c_comment_marker in line or line == trailing_blank_line:
+ # As well as the comment marker line.
+ if c_comment_marker in line:
continue
+
# Also remove the '\a ' and '\b 'substrings.
line = line.replace('\a ', '')
line = line.replace('\b ', '')
@@ -272,11 +298,14 @@
# Look for 'def IsValid(*args):', and once located, add implementation
# of truth value testing for this object by delegation.
if isvalid_pattern.search(line):
- print >> new_content, nonzero_def
+ new_content.add_line(nonzero_def)
# Pass the original line of content to new_content.
- print >> new_content, line
-
+ new_content.add_line(line)
+
+# We are finished with recording new content.
+new_content.finish()
+
with open(output_name, 'w') as f_out:
f_out.write(new_content.getvalue())
f_out.write("debugger_unique_id = 0\n")
Modified: lldb/trunk/scripts/lldb.swig
URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/scripts/lldb.swig?rev=135355&r1=135354&r2=135355&view=diff
==============================================================================
--- lldb/trunk/scripts/lldb.swig (original)
+++ lldb/trunk/scripts/lldb.swig Sat Jul 16 16:15:39 2011
@@ -223,7 +223,7 @@
%include "lldb/API/SBSymbol.h"
%include "lldb/API/SBSymbolContext.h"
%include "lldb/API/SBSymbolContextList.h"
-%include "lldb/API/SBTarget.h"
+%include "./Python/interface/SBTarget.i"
%include "lldb/API/SBThread.h"
%include "lldb/API/SBType.h"
%include "lldb/API/SBValue.h"
More information about the lldb-commits
mailing list