Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Steven Johnson <sjohnson@neurizon.net>
To: Wolfgang Schmieder <wolfgang.schmieder@onlinehome.de>
Cc: cerickson@mvista.com,  gdb@sources.redhat.com
Subject: Re: hardware watchpoints for ppc
Date: Mon, 12 Jul 2004 23:15:00 -0000	[thread overview]
Message-ID: <40F31B6B.2070204@neurizon.net> (raw)
In-Reply-To: <200407122203.27610.wolfgang.schmieder@onlinehome.de>

Wolfgang,

Are you running GDB on your PowerPC Target? Or are you using a stub of 
some kind?

The Stub isnt GDB.

What PowerPC chip are you talking about, they all have different 
features when it comes to debug units, there is no standard "watchpoint" 
unit that all PowerPC's have.

I would guess you are using  GDB on you PC, and it is talking to your 
target using the Remote Serial Protocol.  If so, the place for your 
watchpoint code is in the stub, not in GDB.  The remote serial protocol 
already has support for hardware watchpoints, my stub on PowerPC uses it 
to implement them for an MPC860 Family processor.  You need to add the 
support to your stub, alternatively write some macros in GDB to manually 
set up the watchpoint units, using register read/write operations.  GDB 
wont know you have done this, but if when they hit its causes your stub 
to stop you have achieved what you want.

As for the know how, the MPC860 documentation details that family of 
processor's watchpoint unit, and what it does.  Its cryptic, and you 
have to trial and error it a bit, but that is usually the way with these 
things.  Your processor should have a document that describes if it has 
a hardware watchpoint unit, and if so how to set it up.  Then it is a 
matter of implementing the Remote Serial protocol watchpoint commands.

Steven.


Wolfgang Schmieder wrote:

>Hello Cal,
>
>thanks for the hint. I caught the problem in the meanwhile by checking the 
>respective address in piece of code which is called very often. It took a lot 
>of time and luck.
>This way of catching bugs is really hard. Do you know  how I could
>obtain the know how to implement hardware watchpoints into the gdb ?
>
>Regards
>	Wolfgang
>
>
>Am Dienstag, 6. Juli 2004 22:31 schrieben Sie:
>  
>
>>Wolfgang,
>>We had a similar problem here with some benchmarks we were doing. A
>>particular address was being changed at random and we had to find
>>what was doing it. So we put a watchpoint on the address and when
>>it changed we stopped the process and did a bt to find the culprit.
>>It took a while but it worked. This was on a PPC 860 target board
>>using a cross built gdb and gdbserver. So it can be done it just
>>takes time and patience.
>>
>>The only processor family that I know that has hardware watchpoints is
>>x86. We work here with x86, ppc, mips, arm, xscale, crusoe, and sh.
>>
>>Cal
>>
>>Wolfgang Schmieder wrote:
>>    
>>
>>>Hello Cal,
>>>
>>>thanks for your anwer, even if it's bad news for me !
>>>
>>>
>>>Regards
>>>	Wolfgang
>>>
>>>Am Dienstag, 6. Juli 2004 16:45 schrieb Cal Erickson:
>>>      
>>>
>>>>Wolfgang,
>>>>From what I know there are no hardware watchpoints available on the PPC
>>>>target boards. You might just try watch which will create a software
>>>>watchpoint. These do work on PPC processors.
>>>>
>>>>Cal
>>>>
>>>>Wolfgang Schmieder wrote:
>>>>        
>>>>
>>>>>Hello,
>>>>>
>>>>>is there anybody who knows how I can set hardware watchpoints on ppc
>>>>>boards ? I have a mpc855 board running a multithreaded application. It
>>>>>appears that one thread (always the same thread) has a corrupted stack
>>>>>(always at the same address). I guess I need to set a hardware
>>>>>watchpoint in a remote debugging session to find the piece of code
>>>>>which is corrupting the stack.
>>>>>
>>>>>There is one gdb mailing list thread about "supporting hw break/watch
>>>>>for embedded ppc", which makes me think that there is at least a patch
>>>>>or workaround available to set hardware watchpoints on a ppc board.
>>>>>
>>>>>Thanks,
>>>>>
>>>>>Wolfgang
>>>>>          
>>>>>
>
>
>
>  
>


  reply	other threads:[~2004-07-12 23:14 UTC|newest]

Thread overview: 6+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-07-04  9:06 Wolfgang Schmieder
2004-07-06 14:51 ` Cal Erickson
2004-07-07  0:28   ` Steven Johnson
     [not found] ` <200407062229.18395.wolfgang.schmieder@onlinehome.de>
     [not found]   ` <40EB0C0D.8020806@mvista.com>
2004-07-12 20:38     ` Wolfgang Schmieder
2004-07-12 23:15       ` Steven Johnson [this message]
2004-09-25 15:08         ` Wolfgang Schmieder

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=40F31B6B.2070204@neurizon.net \
    --to=sjohnson@neurizon.net \
    --cc=cerickson@mvista.com \
    --cc=gdb@sources.redhat.com \
    --cc=wolfgang.schmieder@onlinehome.de \
    /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