]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2008-10-03 Paul Pluzhnikov <ppluzhnikov@google.com>
authorPaul Pluzhnikov <ppluzhnikov@google.com>
Fri, 3 Oct 2008 22:02:20 +0000 (22:02 +0000)
committerPaul Pluzhnikov <ppluzhnikov@google.com>
Fri, 3 Oct 2008 22:02:20 +0000 (22:02 +0000)
PR gdb/2384:
* gdb.cp/gdb2384.exp: Extended to test more cases.
* gdb.cp/gdb2384.cc: Likewise.
* gdb.cp/gdb2384-base.h: Likewise.
* gdb.cp/gdb2384-base.cc: Likewise.

gdb/testsuite/ChangeLog
gdb/testsuite/gdb.cp/gdb2384-base.cc
gdb/testsuite/gdb.cp/gdb2384-base.h
gdb/testsuite/gdb.cp/gdb2384.cc
gdb/testsuite/gdb.cp/gdb2384.exp

index ad4b5df6874df149f7e33b8eff8e8557f1bcd0ed..7681b2addf1cc2fb298b6ce7bb949d55bd1b82c0 100644 (file)
@@ -1,3 +1,11 @@
+2008-10-03  Paul Pluzhnikov  <ppluzhnikov@google.com>
+
+       PR gdb/2384:
+       * gdb.cp/gdb2384.exp: Extended to test more cases.
+       * gdb.cp/gdb2384.cc: Likewise.
+       * gdb.cp/gdb2384-base.h: Likewise.
+       * gdb.cp/gdb2384-base.cc: Likewise.
+       
 2008-10-02  Jan Kratochvil  <jan.kratochvil@redhat.com>
 
        * gdb.base/maint.exp (maint print type): Remove printing
index 76b24db72ff909eb75bfa83ee16054a21efdd2c6..44a133db1d0e3351f68cdd769f3bb53a90831594 100644 (file)
@@ -28,3 +28,8 @@ base::meth ()
 {
   return x;
 }
+
+derived::derived (int _x)
+  : base (_x)
+{
+}
index 945ca81f455d0c07c9fe45139b9a2d233960d7c2..f32cff42d8b7887bc26c499dabc183ea95c34cdb 100644 (file)
@@ -23,3 +23,9 @@ class base
   int x;
   virtual int meth ();
 };
+
+class derived : public base
+{
+ public:
+  derived (int _x);
+};
index 74e725d79ef3cc40fafc53a04adeed6cd4b03a14..d7d5928f11285fc573e472ad173bc6ac1c868aec 100644 (file)
 
 #include "gdb2384-base.h"
 
-class derived : public base
+class derived1 : public base
 {
  public:
-  derived (int);
+  derived1 (int);
 };
 
-derived::derived (int _x)
+derived1::derived1 (int _x)
   : base (_x)
 {
 }
 
+class derived2 : public derived
+{
+ public:
+  derived2 (int);
+};
+
+derived2::derived2 (int _x)
+  : derived (_x)
+{
+}
+
 int g;
 
 int
 main ()
 {
-  derived d (42);
-  g = d.meth (); // set breakpoint here
+  derived1 d1 (42);
+  derived2 d2 (24);
+  g = d1.meth (); // set breakpoint here
+  g = d2.meth (); // set breakpoint here (second)
   return 0;
 }
index 370c65b8ee8bfa86a5e2d9059ab316103029d4fc..3ae795744955bffa769159b9870dd74da5bf674b 100644 (file)
@@ -55,46 +55,41 @@ gdb_reinitialize_dir $srcdir/$subdir
 gdb_load ${binfile}
 gdb_load_shlibs ${sofile}
 
-set bp_location [gdb_get_line_number "set breakpoint here"]
-
-# Set a breakpoint with multiple locations.
-
-gdb_test "break $srcfile:$bp_location" \
-    "Breakpoint.*at.* file .*$srcfile, line.*" \
-    "set breakpoint"
-
-gdb_run_cmd
-gdb_expect {
-    -re "Breakpoint \[0-9\]+,.*main \\(.*\\).*$gdb_prompt $" {
-       pass "run to breakpoint"
-    }
-    -re "$gdb_prompt $" {
-       fail "run to breakpoint"
-    }
-    timeout {
-       fail "run to breakpoint (timeout)"
-    }
+
+if ![runto_main] then {
+    perror "couldn't run to breakpoint"
+    return -1
 }
 
-gdb_test "print d.meth ()" \
+gdb_breakpoint [gdb_get_line_number "set breakpoint here"]
+gdb_continue_to_breakpoint "set breakpoint here"
+
+gdb_test "print d1.meth ()" \
     ".*42.*" \
-    "print d.meth ()"
+    "print d1.meth ()"
 
 # Now try again.  gdb's without the fix will hopefully segv here
 
-gdb_run_cmd
-gdb_expect {
-    -re "Breakpoint \[0-9\]+,.*main \\(.*\\).*$gdb_prompt $" {
-       pass "run to breakpoint #2"
-    }
-    -re "$gdb_prompt $" {
-       fail "run to breakpoint #2"
-    }
-    timeout {
-       fail "run to breakpoint #2 (timeout)"
-    }
-}
-
-gdb_test "print d.meth ()" \
+runto_main
+gdb_breakpoint [gdb_get_line_number "set breakpoint here"]
+gdb_continue_to_breakpoint "set breakpoint here"
+gdb_test "print d1.meth ()" \
     ".*42.*" \
     "gdb2384"
+
+# second case
+
+runto_main
+gdb_breakpoint [gdb_get_line_number "set breakpoint here (second)"]
+gdb_continue_to_breakpoint "set breakpoint here (second)"
+gdb_test "print d2.meth ()" \
+    ".*24.*" \
+    "print d2.meth()"
+
+runto_main
+gdb_breakpoint [gdb_get_line_number "set breakpoint here (second)"]
+gdb_continue_to_breakpoint "set breakpoint here (second)"
+gdb_test "print d2.meth ()" \
+    ".*24.*" \
+    "gdb2384 (second)"
+