keiths / rpms / gdb

Forked from rpms/gdb 7 days ago
Clone
Jan Kratochvil d44fa83
commit 6e962026419305ae6c540eb01a735cf7c2685c20
Jan Kratochvil d44fa83
Author: pmuldoon <pmuldoon>
Jan Kratochvil d44fa83
Date:   Tue Aug 9 12:45:39 2011 +0000
Jan Kratochvil d44fa83
Jan Kratochvil d44fa83
    2011-08-09  Phil Muldoon  <pmuldoon@redhat.com>
Jan Kratochvil d44fa83
    
Jan Kratochvil d44fa83
    	* python/lib/gdb/__init__.py: Auto-load files in command and
Jan Kratochvil d44fa83
    	function directories.
Jan Kratochvil d44fa83
    	* python/python.c (finish_python_initialization): Use
Jan Kratochvil d44fa83
    	os.path.join.
Jan Kratochvil d44fa83
    	* python/lib/gdb/command/pretty_printers.py: Self register
Jan Kratochvil d44fa83
    	command.
Jan Kratochvil d44fa83
    	* NEWS: Document auto-loading.
Jan Kratochvil d44fa83
    
Jan Kratochvil d44fa83
    2011-08-09  Phil Muldoon  <pmuldoon@redhat.com>
Jan Kratochvil d44fa83
    
Jan Kratochvil d44fa83
    	* gdb.texinfo (Python): Document command and function
Jan Kratochvil d44fa83
    	auto-loading.
Jan Kratochvil d44fa83
Jan Kratochvil d44fa83
[ Backport for F-14.
Jan Kratochvil d44fa83
  Drop python/python.c changes.
Jan Kratochvil d44fa83
  Make explicit `import os'.
Jan Kratochvil d44fa83
  Ignore: register_pretty_printer_commands()
Jan Kratochvil d44fa83
    - Required for
Jan Kratochvil d44fa83
	[RFA, doc RFA]: New printing module and info/disable/enable commands
Jan Kratochvil d44fa83
	http://sourceware.org/ml/gdb-patches/2010-11/msg00001.html
Jan Kratochvil d44fa83
      	87c4cdd048cfaef8db45587bc58f06df97e992b9
Jan Kratochvil d44fa83
      which is not present in F-14.
Jan Kratochvil d44fa83
]
Jan Kratochvil d44fa83
Jan Kratochvil d44fa83
### a/gdb/ChangeLog
Jan Kratochvil d44fa83
### b/gdb/ChangeLog
Jan Kratochvil d44fa83
## -1,3 +1,13 @@
Jan Kratochvil d44fa83
+2011-08-09  Phil Muldoon  <pmuldoon@redhat.com>
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+	* python/lib/gdb/__init__.py: Auto-load files in command and
Jan Kratochvil d44fa83
+	function directories.
Jan Kratochvil d44fa83
+	* python/python.c (finish_python_initialization): Use
Jan Kratochvil d44fa83
+	os.path.join.
Jan Kratochvil d44fa83
+	* python/lib/gdb/command/pretty_printers.py: Self register
Jan Kratochvil d44fa83
+	command.
Jan Kratochvil d44fa83
+	* NEWS: Document auto-loading.
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
 2011-08-08  Jan Kratochvil  <jan.kratochvil@redhat.com>
Jan Kratochvil d44fa83
 
Jan Kratochvil d44fa83
 	* dwarf2loc.c (dwarf2_evaluate_loc_desc_full) <DWARF_VALUE_STACK>
Jan Kratochvil d44fa83
### a/gdb/doc/ChangeLog
Jan Kratochvil d44fa83
### b/gdb/doc/ChangeLog
Jan Kratochvil d44fa83
## -1,3 +1,8 @@
Jan Kratochvil d44fa83
+2011-08-09  Phil Muldoon  <pmuldoon@redhat.com>
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+	* gdb.texinfo (Python): Document command and function
Jan Kratochvil d44fa83
+	auto-loading.
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
 2011-07-26  Jan Kratochvil  <jan.kratochvil@redhat.com>
Jan Kratochvil d44fa83
 	    Eli Zaretskii  <eliz@gnu.org>
Jan Kratochvil d44fa83
 
Jan Kratochvil d44fa83
--- ./gdb/NEWS	2011-11-10 01:05:53.963411574 +0100
Jan Kratochvil d44fa83
+++ ./gdb/NEWS	2011-11-10 01:09:26.457874127 +0100
Jan Kratochvil d44fa83
@@ -1,6 +1,13 @@
Jan Kratochvil d44fa83
 		What has changed in GDB?
Jan Kratochvil d44fa83
 	     (Organized release by release)
Jan Kratochvil d44fa83
 
Jan Kratochvil d44fa83
+*** Changes after GDB 7.2
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+** Python commands and convenience-functions located in
Jan Kratochvil d44fa83
+  'data-directory'/python/gdb/command and
Jan Kratochvil d44fa83
+  'data-directory'/python/gdb/function are now automatically loaded
Jan Kratochvil d44fa83
+   on GDB start-up.
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
 *** Changes since GDB 7.2
Jan Kratochvil d44fa83
 
Jan Kratochvil d44fa83
 * GDB now supports thread debugging of core dumps on GNU/Linux.
Jan Kratochvil d44fa83
--- ./gdb/doc/gdb.texinfo	2011-11-10 01:05:53.811411957 +0100
Jan Kratochvil d44fa83
+++ ./gdb/doc/gdb.texinfo	2011-11-10 01:06:47.029277357 +0100
Jan Kratochvil d44fa83
@@ -20389,6 +20389,12 @@ the data directory as determined at @val
Jan Kratochvil d44fa83
 is automatically added to the Python Search Path in order to allow
Jan Kratochvil d44fa83
 the Python interpreter to locate all scripts installed at this location.
Jan Kratochvil d44fa83
 
Jan Kratochvil d44fa83
+Additionally, @value{GDBN} commands and convenience functions which
Jan Kratochvil d44fa83
+are written in Python and are located in the
Jan Kratochvil d44fa83
+@file{@var{data-directory}/python/gdb/command} or
Jan Kratochvil d44fa83
+@file{@var{data-directory}/python/gdb/function} directories are
Jan Kratochvil d44fa83
+automatically imported when @value{GDBN} starts.
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
 @menu
Jan Kratochvil d44fa83
 * Python Commands::             Accessing Python from @value{GDBN}.
Jan Kratochvil d44fa83
 * Python API::                  Accessing @value{GDBN} from Python.
Jan Kratochvil d44fa83
--- ./gdb/python/lib/gdb/__init__.py	2011-11-10 01:05:53.528412675 +0100
Jan Kratochvil d44fa83
+++ ./gdb/python/lib/gdb/__init__.py	2011-11-10 01:08:24.443030975 +0100
Jan Kratochvil d44fa83
@@ -15,5 +15,30 @@
Jan Kratochvil d44fa83
 # You should have received a copy of the GNU General Public License
Jan Kratochvil d44fa83
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
Jan Kratochvil d44fa83
 
Jan Kratochvil d44fa83
-# Load the require command by default.
Jan Kratochvil d44fa83
-import gdb.command.require
Jan Kratochvil d44fa83
+import traceback
Jan Kratochvil d44fa83
+import os
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+# Auto-load all functions/commands.
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+# Modules to auto-load, and the paths where those modules exist.
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+module_dict = {
Jan Kratochvil d44fa83
+  'gdb.function': os.path.join(gdb.PYTHONDIR, 'gdb', 'function'),
Jan Kratochvil d44fa83
+  'gdb.command': os.path.join(gdb.PYTHONDIR, 'gdb', 'command')
Jan Kratochvil d44fa83
+}
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+# Iterate the dictionary, collating the Python files in each module
Jan Kratochvil d44fa83
+# path.  Construct the module name, and import.
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+for module, location in module_dict.iteritems():
Jan Kratochvil d44fa83
+  if os.path.exists(location):
Jan Kratochvil d44fa83
+     py_files = filter(lambda x: x.endswith('.py') and x != '__init__.py',
Jan Kratochvil d44fa83
+                       os.listdir(location))
Jan Kratochvil d44fa83
+
Jan Kratochvil d44fa83
+     for py_file in py_files:
Jan Kratochvil d44fa83
+       # Construct from foo.py, gdb.module.foo
Jan Kratochvil d44fa83
+       py_file = module + '.' + py_file[:-3]
Jan Kratochvil d44fa83
+       try:
Jan Kratochvil d44fa83
+         exec('import ' + py_file)
Jan Kratochvil d44fa83
+       except:
Jan Kratochvil d44fa83
+         print >> sys.stderr, traceback.format_exc()