diff --git a/scripts/Python/interface/SBAddress.i b/scripts/Python/interface/SBAddress.i
index d2ca148..f0e2253 100644
--- a/scripts/Python/interface/SBAddress.i
+++ b/scripts/Python/interface/SBAddress.i
@@ -82,8 +82,48 @@
     SectionType
     GetSectionType ();
 
+    %feature("docstring", "
+    //------------------------------------------------------------------
+    /// GetSymbolContext() and the following can lookup symbol information for a given address.
+    /// An address might refer to code or data from an existing module, or it
+    /// might refer to something on the stack or heap. The following functions
+    /// will only return valid values if the address has been resolved to a code
+    /// or data address using 'void SBAddress::SetLoadAddress(...)' or 
+    /// 'lldb::SBAddress SBTarget::ResolveLoadAddress (...)'. 
+    //------------------------------------------------------------------
+    ") GetSymbolContext;
+    lldb::SBSymbolContext
+    GetSymbolContext (uint32_t resolve_scope);
+
+    %feature("docstring", "
+    //------------------------------------------------------------------
+    /// GetModule() and the following grab individual objects for a given address and
+    /// are less efficient if you want more than one symbol related objects. 
+    /// Use one of the following when you want multiple debug symbol related 
+    /// objects for an address:
+    ///    lldb::SBSymbolContext SBAddress::GetSymbolContext (uint32_t resolve_scope);
+    ///    lldb::SBSymbolContext SBTarget::ResolveSymbolContextForAddress (const SBAddress &addr, uint32_t resolve_scope);
+    /// One or more bits from the SymbolContextItem enumerations can be logically
+    /// OR'ed together to more efficiently retrieve multiple symbol objects.
+    //------------------------------------------------------------------
+    ") GetModule;
     lldb::SBModule
     GetModule ();
+    
+    lldb::SBCompileUnit
+    GetCompileUnit ();
+
+    lldb::SBFunction
+    GetFunction ();
+
+    lldb::SBBlock
+    GetBlock ();
+
+    lldb::SBSymbol
+    GetSymbol ();
+
+    lldb::SBLineEntry
+    GetLineEntry ();
 };
 
 } // namespace lldb
