Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Joel Brobecker <brobecker@adacore.com>
To: gdb-patches@sources.redhat.com
Subject: Re: [RFA/testsuite] New (Ada) testcase for watchpoint issue
Date: Fri, 06 Oct 2006 01:42:00 -0000	[thread overview]
Message-ID: <20061006014223.GA980@adacore.com> (raw)
In-Reply-To: <20061006011502.GA998@adacore.com>

[-- Attachment #1: Type: text/plain, Size: 1152 bytes --]

[with the patch this time...]

Here is a new testcase that reproduces the issue presented in:

        http://www.sourceware.org/ml/gdb-patches/2006-10/msg00044.html

I tried reproducing this problem in C, but didn't manage too. Perhaps
I could have tried using a GCC extension and used a nested function,
but I thought it was cleaner to do it in pure legal Ada instead.

The only difference between the example in the message above and
the example I'm posting now is that I got read of the "delay 1.0"
statement, and replaced it with something much simpler in terms
of code generation - for targets that only have software watchpoints,
that should help shorten the time it takes to run this test (as well
as removing and unnecessary delay while waiting for the inferior
to run, actually!).

2006-10-05  Joel Brobecker  <brobecker@adacore.com>

        * gdb.ada/watch_arg/watch.adb: New file.
        * gdb.ada/watch_arg.exp: New testcase.

Tested on x86-linux, all PASSES with the patch submitted in the message
mentioned above, 1 FAIL without it:

        FAIL: gdb.ada/watch_arg.exp: Continuing to second breakpoint

OK to apply?

Thanks,
-- 
Joel

[-- Attachment #2: watch.adb --]
[-- Type: text/plain, Size: 201 bytes --]

procedure Watch is

   procedure Foo (X : access Integer) is
   begin
      X.all := 3;  -- BREAK1
   end Foo;

   X : aliased Integer := 1;

begin
   Foo (X'Access);
   X := 2;  -- BREAK2
end Watch;


[-- Attachment #3: watch_arg.exp --]
[-- Type: text/plain, Size: 1950 bytes --]

# Copyright 2005 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
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
# MA 02110-1301, USA

if $tracelevel then {
    strace $tracelevel
}

load_lib "ada.exp"

set testdir "watch_arg"
set testfile "${testdir}/watch"
set srcfile ${srcdir}/${subdir}/${testfile}.adb
set binfile ${objdir}/${subdir}/${testfile}

file mkdir ${objdir}/${subdir}/${testdir}
if {[gdb_compile_ada "${srcfile}" "${binfile}" executable [list debug ]] != "" } {
  return -1
}

gdb_exit
gdb_start
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}

set bp_location [gdb_get_line_number "BREAK1" ${testdir}/watch.adb]
runto "watch.adb:$bp_location"

# Insert a watchpoint on argument X

gdb_test "watch x" \
         ".*atchpoint \[0-9\]+: x" \
         "Set watchpoint on function argument X"

# Then insert a breakpoint at the location we'd like to continue to...
set bp_location [gdb_get_line_number "BREAK2" ${testdir}/watch.adb]
gdb_test "break watch.adb:$bp_location" \
         "Breakpoint \[0-9\]+ at.*: file .*watch.adb, line \[0-9\]+." \
         "insert second breakpoint in watch.adb"

# Then continue to that breakpoint, and verify that the watchpoint
# did not interfere with that.

gdb_test "cont" \
         "Breakpoint \[0-9\]+, watch \\(\\).*" \
         "Continuing to second breakpoint"



  parent reply	other threads:[~2006-10-06  1:42 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-10-06  1:15 Joel Brobecker
2006-10-06  1:20 ` Daniel Jacobowitz
2006-10-06  1:42 ` Joel Brobecker [this message]
2006-10-06  3:26   ` Daniel Jacobowitz
2006-10-06 17:48     ` Joel Brobecker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20061006014223.GA980@adacore.com \
    --to=brobecker@adacore.com \
    --cc=gdb-patches@sources.redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox