This is the mail archive of the
gdb@sourceware.org
mailing list for the GDB project.
Re: [GDB help] Regarding breakpoint support in ARM
- From: paawan oza <paawan1982 at yahoo dot com>
- To: Suraj Sivan <suraj dot sivan at gmail dot com>, gdb at sourceware dot org
- Date: Mon, 31 May 2010 02:22:05 -0700 (PDT)
- Subject: Re: [GDB help] Regarding breakpoint support in ARM
- References: <AANLkTikxSkkxqmCxt-eYAG6FevYv22awWyY7ztRkcvTV@mail.gmail.com>
Hi,
The moment you give continue, gdb keeps on trying to insert the extra hw breakpoint all the time.
I think, gdb expects you to remove manually and then continue (if you rove previously set hw breakpoint, then it should work also)
I wonder, even after knowing that it can not set extra hw watch-point, due to lack of debug registers, still it goes ahead and set it in its private list, which could be avoided.
(this is the case with x86 also, If I am correct)
Regards,
Oza.
----- Original Message ----
From: Suraj Sivan <suraj.sivan@gmail.com>
To: gdb@sourceware.org
Sent: Mon, May 31, 2010 12:30:05 PM
Subject: [GDB help] Regarding breakpoint support in ARM
Hi,
I'm working with GDB and custom GDB Server for debugging ARM. The core
is ARM7TDMI-S which has 2 hardware resources for setting breakpoints.
I am using the option "set breakpoint always-inserted on" so that
whenever I set a breakpoint or watcpoint, GDB will put it immediately
rather than waiting for continue command. After setting three
breakpoints(2 software and 1 hardware), if I try to put a 4th hardware
breakpoint GDB will give a warning as below:
Warning:
Cannot insert hardware breakpoint 4.
Could not insert hardware breakpoints:
You may have requested too many hardware breakpoints/watchpoints.
Now if I list the breakpoints using "info b" command, GDB displays as below:
Num Type Disp Enb Address What
1 breakpoint keep y 0x40000010 ../source/armloop.s:8
2 breakpoint keep y 0x40000020 ../source/armloop.s:12
3 hw breakpoint keep y 0x40000030 ../source/armloop.s:16
4 hw breakpoint keep y 0x40000040 ../source/armloop.s:20
Here it is seen that GDB keeps the 4th hardware breakpoint information
in its table. If I give a continue command, GDB will try to put the
4th breakpoint again and gives the same warning as above and gets into
a situation where I have to manually delete the 4th breakpoint to
further continue. Is there an option for GDB to not keep the
information of the particular breakpoint which it gives a warning like
above?
regards
Suraj S