rpms/gdb/devel gdb-archer.patch,1.10,1.11 gdb.spec,1.337,1.338

Jan Kratochvil jkratoch at fedoraproject.org
Sun Apr 5 20:34:21 UTC 2009


Author: jkratoch

Update of /cvs/pkgs/rpms/gdb/devel
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv14931

Modified Files:
	gdb-archer.patch gdb.spec 
Log Message:
* Sun Apr  5 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-14
- Archer update to the snapshot: f6273d446ff87e50976600ba3f71b88d61043e20
- Archer backport: f6273d446ff87e50976600ba3f71b88d61043e20
  - Use pretty-printers to print base classes inside a derived class.


gdb-archer.patch:

Index: gdb-archer.patch
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb-archer.patch,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- gdb-archer.patch	30 Mar 2009 17:32:00 -0000	1.10
+++ gdb-archer.patch	5 Apr 2009 20:34:20 -0000	1.11
@@ -2,7 +2,7 @@
 http://sourceware.org/gdb/wiki/ArcherBranchManagement
 
 GIT snapshot:
-commit d144a3633454046aaeae3e2c369c271834431d36
+commit f6273d446ff87e50976600ba3f71b88d61043e20
 
 branch `archer' - the merge of branches:
 archer-jankratochvil-merge-expr
@@ -12318,10 +12318,52 @@
  						  const char *name,
  						  const char *linkage_name,
 diff --git a/gdb/cp-valprint.c b/gdb/cp-valprint.c
-index 8b7d868..dcd32cb 100644
+index 8b7d868..4e33fa0 100644
 --- a/gdb/cp-valprint.c
 +++ b/gdb/cp-valprint.c
-@@ -461,6 +461,7 @@ cp_print_static_field (struct type *type,
+@@ -36,6 +36,7 @@
+ #include "valprint.h"
+ #include "cp-support.h"
+ #include "language.h"
++#include "python/python.h"
+ 
+ /* Controls printing of vtbl's */
+ static void
+@@ -418,12 +419,27 @@ cp_print_value (struct type *type, struct type *real_type,
+       if (skip >= 1)
+ 	fprintf_filtered (stream, "<invalid address>");
+       else
+-	cp_print_value_fields (baseclass, thistype, base_valaddr,
+-			       thisoffset + boffset, address + boffset,
+-			       stream, recurse, options,
+-			       ((struct type **)
+-				obstack_base (&dont_print_vb_obstack)),
+-			       0);
++	{
++	  int result = 0;
++
++	  /* Attempt to run the Python pretty-printers on the
++	     baseclass if possible.  */
++	  if (!options->raw)
++	    result = apply_val_pretty_printer (baseclass, base_valaddr,
++					       thisoffset + boffset,
++					       address + boffset,
++					       stream, recurse,
++					       options,
++					       current_language);
++	  	  
++	  if (!result)
++	    cp_print_value_fields (baseclass, thistype, base_valaddr,
++				   thisoffset + boffset, address + boffset,
++				   stream, recurse, options,
++				   ((struct type **)
++				    obstack_base (&dont_print_vb_obstack)),
++				   0);
++	}
+       fputs_filtered (", ", stream);
+ 
+     flush_it:
+@@ -461,6 +477,7 @@ cp_print_static_field (struct type *type,
    if (TYPE_CODE (type) == TYPE_CODE_STRUCT)
      {
        CORE_ADDR *first_dont_print;
@@ -12329,7 +12371,7 @@
        int i;
  
        first_dont_print
-@@ -470,7 +471,7 @@ cp_print_static_field (struct type *type,
+@@ -470,7 +487,7 @@ cp_print_static_field (struct type *type,
  
        while (--i >= 0)
  	{
@@ -12338,7 +12380,7 @@
  	    {
  	      fputs_filtered ("<same as static member of an already"
  			      " seen type>",
-@@ -479,12 +480,13 @@ cp_print_static_field (struct type *type,
+@@ -479,12 +496,13 @@ cp_print_static_field (struct type *type,
  	    }
  	}
  
@@ -12354,7 +12396,7 @@
  			     stream, recurse, options, NULL, 1);
        return;
      }
-@@ -492,7 +494,7 @@ cp_print_static_field (struct type *type,
+@@ -492,7 +510,7 @@ cp_print_static_field (struct type *type,
    opts = *options;
    opts.deref_ref = 0;
    val_print (type, value_contents_all (val), 
@@ -40681,13 +40723,13 @@
 +mi_varobj_update_with_type_change container int 0 "update after type change"
 diff --git a/gdb/testsuite/gdb.python/python-prettyprint.c b/gdb/testsuite/gdb.python/python-prettyprint.c
 new file mode 100644
-index 0000000..f8c2435
+index 0000000..399be23
 --- /dev/null
 +++ b/gdb/testsuite/gdb.python/python-prettyprint.c
-@@ -0,0 +1,159 @@
+@@ -0,0 +1,191 @@
 +/* This testcase is part of GDB, the GNU debugger.
 +
-+   Copyright 2008 Free Software Foundation, Inc.
++   Copyright 2008, 2009 Free Software Foundation, Inc.
 +
 +   This program is free software; you can redistribute it and/or modify
 +   it under the terms of the GNU General Public License as published by
@@ -40731,6 +40773,35 @@
 +  const S &b;
 +};
 +SSS::SSS (int x, const S& r) : a(x), b(r) { }
++
++class VirtualTest 
++{ 
++ private: 
++  int value; 
++
++ public: 
++  VirtualTest () 
++    { 
++      value = 1;
++    } 
++};
++
++class Vbase1 : public virtual VirtualTest { };
++class Vbase2 : public virtual VirtualTest { };
++class Vbase3 : public virtual VirtualTest { };
++
++class Derived : public Vbase1, public Vbase2, public Vbase3
++{ 
++ private: 
++  int value; 
++  
++ public:
++  Derived () 
++    { 
++      value = 2; 
++    }
++};
++
 +#endif
 +
 +typedef struct string_repr
@@ -40833,6 +40904,9 @@
 +  SSS sss(15, cps);
 +
 +  SSS& ref (sss);
++
++  Derived derived;
++  
 +#endif
 +
 +  add_item (&c, 23);		/* MI breakpoint here */
@@ -40846,11 +40920,11 @@
 +}
 diff --git a/gdb/testsuite/gdb.python/python-prettyprint.exp b/gdb/testsuite/gdb.python/python-prettyprint.exp
 new file mode 100644
-index 0000000..b2ccb2b
+index 0000000..f83b1cd
 --- /dev/null
 +++ b/gdb/testsuite/gdb.python/python-prettyprint.exp
-@@ -0,0 +1,90 @@
-+# Copyright (C) 2008 Free Software Foundation, Inc.
+@@ -0,0 +1,92 @@
++# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
 +
 +# This program is free software; you can redistribute it and/or modify
 +# it under the terms of the GNU General Public License as published by
@@ -40928,6 +41002,8 @@
 +	gdb_test "print cpssa" " = {{$nl *zss = 11, *$nl *s =  a=<12> b=<$hex>$nl *}, {$nl *zss = 13, *$nl *s =  a=<14> b=<$hex>$nl *}}"
 +	gdb_test "print sss" "= a=<15> b=< a=<8> b=<$hex>>"
 +	gdb_test "print ref" "= a=<15> b=< a=<8> b=<$hex>>"
++	gdb_test "print derived" \
++	    " = \{.*<Vbase1> = pp class name: Vbase1.*<Vbase2> = \{.*<VirtualTest> = pp value variable is: 1,.*members of Vbase2:.*_vptr.Vbase2 = $hex.*<Vbase3> = \{.*members of Vbase3.*members of Derived:.*value = 2.*"
 +    }
 +
 +    gdb_test "print x" " = $hex \"this is x\""
@@ -40942,10 +41018,10 @@
 +run_lang_tests "c++"
 diff --git a/gdb/testsuite/gdb.python/python-prettyprint.py b/gdb/testsuite/gdb.python/python-prettyprint.py
 new file mode 100644
-index 0000000..0d9cb87
+index 0000000..8379ecf
 --- /dev/null
 +++ b/gdb/testsuite/gdb.python/python-prettyprint.py
-@@ -0,0 +1,134 @@
+@@ -0,0 +1,151 @@
 +# Copyright (C) 2008, 2009 Free Software Foundation, Inc.
 +
 +# This program is free software; you can redistribute it and/or modify
@@ -41026,6 +41102,20 @@
 +    def to_string(self):
 +        return "a=<" + str(self.val['a']) + "> b=<" + str(self.val["b"]) + ">"
 +
++class pp_multiple_virtual:
++    def __init__ (self, val):
++        self.val = val
++
++    def to_string (self):
++        return "pp value variable is: " + str (self.val['value'])
++
++class pp_vbase1:
++    def __init__ (self, val):
++        self.val = val
++
++    def to_string (self):
++        return "pp class name: " + self.val.type ().tag ()
++
 +def lookup_function (val):
 +    "Look-up and return a pretty-printer that can print val."
 +
@@ -41067,6 +41157,9 @@
 +    pretty_printers_dict[re.compile ('^const S &$')]   = pp_s
 +    pretty_printers_dict[re.compile ('^SSS$')]  = pp_sss
 +    
++    pretty_printers_dict[re.compile ('^VirtualTest$')] =  pp_multiple_virtual
++    pretty_printers_dict[re.compile ('^Vbase1$')] =  pp_vbase1
++    
 +    # Note that we purposely omit the typedef names here.
 +    # Printer lookup is based on canonical name.
 +    # However, we do need both tagged and untagged variants, to handle


Index: gdb.spec
===================================================================
RCS file: /cvs/pkgs/rpms/gdb/devel/gdb.spec,v
retrieving revision 1.337
retrieving revision 1.338
diff -u -r1.337 -r1.338
--- gdb.spec	30 Mar 2009 17:32:01 -0000	1.337
+++ gdb.spec	5 Apr 2009 20:34:21 -0000	1.338
@@ -13,7 +13,7 @@
 
 # The release always contains a leading reserved number, start it at 1.
 # `upstream' is not a part of `name' to stay fully rpm dependencies compatible for the testing.
-Release: 13%{?_with_upstream:.upstream}%{?dist}
+Release: 14%{?_with_upstream:.upstream}%{?dist}
 
 License: GPLv3+
 Group: Development/Debuggers
@@ -851,6 +851,11 @@
 %endif
 
 %changelog
+* Sun Apr  5 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-14
+- Archer update to the snapshot: f6273d446ff87e50976600ba3f71b88d61043e20
+- Archer backport: f6273d446ff87e50976600ba3f71b88d61043e20
+  - Use pretty-printers to print base classes inside a derived class.
+
 * Mon Mar 30 2009 Jan Kratochvil <jan.kratochvil at redhat.com> - 6.8.50.20090302-13
 - Archer update to the snapshot: d144a3633454046aaeae3e2c369c271834431d36
 - Archer backport: a2c49b7640ebe7ce1376902d48d5bbbee600996b




More information about the fedora-extras-commits mailing list