public inbox for gdb@sourceware.org
 help / color / mirror / Atom feed
From: Mark Kettenis <mark.kettenis@xs4all.nl>
To: flameroc@gmail.com
Cc: yao@codesourcery.com, gdb@sourceware.org
Subject: Re: Hardware breakpoint limitation issue during the gdb regression test
Date: Thu, 09 Aug 2012 10:30:00 -0000	[thread overview]
Message-ID: <201208091030.q79AURkU017337@glazunov.sibelius.xs4all.nl> (raw)
In-Reply-To: <CAGbRaL6+XrKRUV_wcrjwGXkV2uk=Oyfmj8khaHYf=u-mQzz8VQ@mail.gmail.com>	(message from Terry Guo on Thu, 9 Aug 2012 17:11:40 +0800)

> Date: Thu, 9 Aug 2012 17:11:40 +0800
> From: Terry Guo <flameroc@gmail.com>
> 
> On Thu, Aug 9, 2012 at 11:47 AM, Yao Qi <yao@codesourcery.com> wrote:
> > On Wednesday, August 08, 2012 04:55:44 PM Terry Guo wrote:
> >> I managed to run gdb "make check" on a real arm cortex-m3 board.
> >> During this regression test, I saw many failures are caused by "Cannot
> >> insert hardware breakpoint 8" and "You may have requested too many
> >> hardware breakpoints/watchpoints". It's true that my arm board only
> >> supports limited number breakpoints. So how to workaround this
> >> limitation for regression test? Thanks.
> >
> > You don't have to workaround this limitation.  x86 also has a limited number
> > of hardware breakpoints and processor with unlimited hw breakpoints doesn't
> > exist at all :)  If testsuite works for x86, it should work for your
> > configuration.
> >
> > As you provide quite few information, I can't tell where the problem is.  In
> > testsuite, it is regarded that target "arm*-*-*" supports both hardware
> > breakpoint and watchpoint (see skip_hw_breakpoint_tests and
> > skip_hw_watchpoint_tests in testsuite/lib/gdb.exp), so all hw watch/break
> > tests are run on your board.
> >
> > You have to check whether your stub is able to handle hardware
> > breakpoint/watchpoint packets, and insert them correctly.
> >
> > --
> 
> Thanks for help. Here are more information. I am trying to run tests
> in break.exp on my cortex-m3 board. The test process is:
> 
> 1) start target gdb and load binary file.
> 2) set 8 different breakpoints.
> 3) then connect to my board and load binary file to board.
> 4) then use gdb command "continue" to start to run the binary. At this
> point, I will get error messages like:
> 
> -----GDB output---------
> (gdb) continue
> Continuing.
> Note: automatically using hardware breakpoints for read-only addresses.
> Warning:
> Cannot insert hardware breakpoint 2.
> Could not insert hardware breakpoints:
> You may have requested too many hardware breakpoints/watchpoints.
> 
> (gdb) break 46
> Breakpoint 9 at 0x180: file
> /home/terguo01/work/gcc-arm-none-eabi-4_8-2012q3-20120803/src/gdb/gdb/testsuite/gdb.base/break.c,
> line 46.
> (gdb) continue
> Continuing.
> Warning:
> Cannot insert hardware breakpoint 9.
> Cannot insert hardware breakpoint 2.
> Could not insert hardware breakpoints:
> You may have requested too many hardware breakpoints/watchpoints.
> ------------------------------------------------------------------------------------------------------
> 
> For me, it seems many tests in gdb regression test tend to set around
> 8 or 9 break points. And I always end with this error on "cannot
> insert hardware breakpoint".  Such tests can work on x86, I think it
> is because x86 can support more breakpoints than arm. I do need a way
> to make these tests can run on arm board. Please help.

No, x86 has even less hardware breakpoints (4).  But it will fall back
to using software breakpoints.  Your ARM target isn't doing that,
probably because:

  Note: automatically using hardware breakpoints for read-only addresses.

I think you either have to accept the failures you get or find a way
to make your binaries not read-only.

  reply	other threads:[~2012-08-09 10:30 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-08-08  8:55 Terry Guo
2012-08-08 16:40 ` Liang Cheng
2012-08-09  0:03 ` Luis Gustavo
2012-08-09  3:48 ` Yao Qi
2012-08-09  9:12   ` Terry Guo
2012-08-09 10:30     ` Mark Kettenis [this message]
2012-08-09 10:42       ` Jan Kratochvil
2012-08-09 16:00         ` Eli Zaretskii

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=201208091030.q79AURkU017337@glazunov.sibelius.xs4all.nl \
    --to=mark.kettenis@xs4all.nl \
    --cc=flameroc@gmail.com \
    --cc=gdb@sourceware.org \
    --cc=yao@codesourcery.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;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).