From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 11016 invoked by alias); 9 Aug 2012 10:30:53 -0000 Received: (qmail 11005 invoked by uid 22791); 9 Aug 2012 10:30:52 -0000 X-SWARE-Spam-Status: No, hits=-2.9 required=5.0 tests=AWL,BAYES_00,KHOP_THREADED,T_RP_MATCHES_RCVD X-Spam-Check-By: sourceware.org Received: from sibelius.xs4all.nl (HELO glazunov.sibelius.xs4all.nl) (83.163.83.176) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Thu, 09 Aug 2012 10:30:36 +0000 Received: from glazunov.sibelius.xs4all.nl (kettenis@localhost [127.0.0.1]) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3) with ESMTP id q79AUTQH019507; Thu, 9 Aug 2012 12:30:29 +0200 (CEST) Received: (from kettenis@localhost) by glazunov.sibelius.xs4all.nl (8.14.5/8.14.3/Submit) id q79AURkU017337; Thu, 9 Aug 2012 12:30:27 +0200 (CEST) Date: Thu, 09 Aug 2012 10:30:00 -0000 Message-Id: <201208091030.q79AURkU017337@glazunov.sibelius.xs4all.nl> From: Mark Kettenis To: flameroc@gmail.com CC: yao@codesourcery.com, gdb@sourceware.org In-reply-to: (message from Terry Guo on Thu, 9 Aug 2012 17:11:40 +0800) Subject: Re: Hardware breakpoint limitation issue during the gdb regression test References: <2908402.0pCVQUbaGe@qiyao.dyndns.org> Mailing-List: contact gdb-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-owner@sourceware.org X-SW-Source: 2012-08/txt/msg00025.txt.bz2 > Date: Thu, 9 Aug 2012 17:11:40 +0800 > From: Terry Guo > > On Thu, Aug 9, 2012 at 11:47 AM, Yao Qi 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.