public inbox for frysk@sourceware.org
 help / color / mirror / Atom feed
From: Phil Muldoon <pmuldoon@redhat.com>
To: frysk@sourceware.org
Subject: Re: [SCM]  master: 2008-03-26  Phil Muldoon  <pmuldoon@redhat.com>
Date: Wed, 26 Mar 2008 16:47:00 -0000	[thread overview]
Message-ID: <47EA7E0E.4030406@redhat.com> (raw)
In-Reply-To: <20080326130354.5799.qmail@sourceware.org>

pmuldoon@sourceware.org wrote:

This commit defines the lower level interfaces, via the ISA to the 
hardware debug register APIs. I committed it a bit early as I have a few 
fixes (location of the debug status register, 4 instead of 7 accessible 
registers and so on). The ISA code will abstract the ISA specific 
knowledge required to massage the individual debug registers, and the 
debug status register.

Regards

Phil
> The branch, master has been updated
>        via  00345416a6028de2e659b7a01d3b1c54adca694f (commit)
>       from  9c6237cfe7385cb4d444a00c92de1a7668cae0ed (commit)
>
> Those revisions listed above that are new to this repository have
> not appeared on any other notification email.
>
> - Log -----------------------------------------------------------------
> commit 00345416a6028de2e659b7a01d3b1c54adca694f
> Author: Phil Muldoon <pmuldoon@redhat.com>
> Date:   Wed Mar 26 13:03:25 2008 +0000
>
>     2008-03-26  Phil Muldoon  <pmuldoon@redhat.com>
>     
>             * Isa.java (setWatchpoint): New Interface
>             (deleteWatchpoint): Ditto.
>             (getWatchpointCount): Ditto.
>             * LinuxX8664.java: Add above interfaces.
>             * LinuxIA32.java: Ditto.
>             * IsaPowerPC.java: Ditto.
>
> -----------------------------------------------------------------------
>
> Summary of changes:
>  frysk-core/frysk/proc/live/ChangeLog       |    9 ++++++
>  frysk-core/frysk/proc/live/Isa.java        |   28 ++++++++++++++++++++
>  frysk-core/frysk/proc/live/IsaPowerPC.java |   37 ++++++++++++++++++++++++++
>  frysk-core/frysk/proc/live/LinuxIA32.java  |   39 +++++++++++++++++++++++++++-
>  frysk-core/frysk/proc/live/LinuxX8664.java |   35 +++++++++++++++++++++++++
>  5 files changed, 147 insertions(+), 1 deletions(-)
>
> First 500 lines of diff:
> diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog
> index c269998..0175fca 100644
> --- a/frysk-core/frysk/proc/live/ChangeLog
> +++ b/frysk-core/frysk/proc/live/ChangeLog
> @@ -1,3 +1,12 @@
> +2008-03-26  Phil Muldoon  <pmuldoon@redhat.com>
> +
> +	* Isa.java (setWatchpoint): New Interface
> +	(deleteWatchpoint): Ditto.
> +	(getWatchpointCount): Ditto.
> +	* LinuxX8664.java: Add above interfaces.
> +	* LinuxIA32.java: Ditto.
> +	* IsaPowerPC.java: Ditto.
> +
>  2008-03-18  Andrew Cagney  <cagney@redhat.com>
>  
>  	* LinuxPtraceHost.java (removeProc(LinuxPtraceProc)): Replace
> diff --git a/frysk-core/frysk/proc/live/Isa.java b/frysk-core/frysk/proc/live/Isa.java
> index 41bb1c0..3ea7fba 100644
> --- a/frysk-core/frysk/proc/live/Isa.java
> +++ b/frysk-core/frysk/proc/live/Isa.java
> @@ -51,6 +51,34 @@ import inua.eio.ByteBuffer;
>  
>  public interface Isa {
>  
> +
> +  /**
> +   * Builds a watchpoint. Takes a task, an address, a 
> +   * range and a register index.
> +   *
> +   * @return boolean whether the watchpoint
> +   * was set succesfully.
> +   */
> +  boolean setWatchpoint(Task task, long addr, 
> +			long range, int index);
> +
> +  /**
> +   * Deletes a watchpoint. Takes a task, and a 
> +   * register index.
> +   *
> +   * @return boolean whether the watchpoint
> +   * was deleted succesfully.
> +   */
> +  boolean deleteWatchpoint(Task task, int index);
> +
> +
> +  /**
> +   * Returns number of watchpoints for this architecture
> +   *
> +   * @return int number of usable watchpoints.
> +   */
> +  int getWatchpointCount();
> +
>    /**
>     * Get the breakpoint instruction.
>     * 
> diff --git a/frysk-core/frysk/proc/live/IsaPowerPC.java b/frysk-core/frysk/proc/live/IsaPowerPC.java
> index a69ca46..39120cf 100644
> --- a/frysk-core/frysk/proc/live/IsaPowerPC.java
> +++ b/frysk-core/frysk/proc/live/IsaPowerPC.java
> @@ -58,6 +58,43 @@ abstract class IsaPowerPC implements Isa {
>     	new Instruction(new byte[] { (byte)0x7d, (byte)0x82, 
>  				     (byte)0x10, (byte)0x08 }, false);
>  
> +
> +    // Architecture Watchpoint Count
> +    private final int NoOfWatchpoints = 1;
> +
> +    /**
> +     * Builds a watchpoint. Takes a task, an address a 
> +     * range and a register index.
> +     *
> +     * @return boolean whether the watchpoint
> +     * was set succesfully.
> +     */
> +    public final boolean setWatchpoint(Task task, long addr, 
> +				       long range, int index) {
> +	throw new RuntimeException("Watchpoints not supported on this arch");
> +    }
> +
> +    /**
> +     * Deletes a watchpoint. Takes a task and a 
> +     * range.
> +     *
> +     * @return boolean whether the watchpoint
> +     * was deleted succesfully.
> +     */
> +    public final boolean deleteWatchpoint(Task task, int index) {
> +	throw new RuntimeException("Watchpoints not supported on this arch");
> +    }
> +
> +    /**
> +     * Returns number of watchpoints for this architecture
> +     *
> +     * @return int number of usable watchpoints.
> +     */
> +    public final int getWatchpointCount() {
> +	return NoOfWatchpoints;
> +    }
> +
> +
>    /**
>     * Get the breakpoint instruction of the PowerPC platform.
>     */
> diff --git a/frysk-core/frysk/proc/live/LinuxIA32.java b/frysk-core/frysk/proc/live/LinuxIA32.java
> index fe11aa5..184a5d9 100644
> --- a/frysk-core/frysk/proc/live/LinuxIA32.java
> +++ b/frysk-core/frysk/proc/live/LinuxIA32.java
> @@ -51,7 +51,41 @@ class LinuxIA32 implements Isa {
>  
>      private static final Instruction IA32Breakpoint
>  	= new Instruction(new byte[] { (byte)0xcc }, false);
> -  
> +
> +    // Architecture Watchpoint Count
> +    private final int NoOfWatchpoints = 7;
> +
> +    /**
> +     * Builds a watchpoint. Takes a task, an address, a 
> +     * range and a register index.
> +     *
> +     * @return boolean whether the watchpoint
> +     * was set succesfully.
> +     */
> +    public final boolean setWatchpoint(Task task, long addr, 
> +				       long range, int index) {
> +	throw new RuntimeException("Watchpoints not supported on this arch");
> +    }
> +
> +    /**
> +     * Deletes a watchpoint. Takes a task, and a range.
> +     *
> +     * @return boolean whether the watchpoint
> +     * was deleted succesfully.
> +     */
> +    public final boolean deleteWatchpoint(Task task, int index) {
> +	throw new RuntimeException("Watchpoints not supported on this arch");
> +    }
> +
> +    /**
> +     * Returns number of watchpoints for this architecture
> +     *
> +     * @return int number of usable watchpoints.
> +     */
> +    public final int getWatchpointCount() {
> +	return NoOfWatchpoints;
> +    }
> +
>      /**
>       * Get the breakpoint instruction for IA32.
>       */
> @@ -154,10 +188,13 @@ class LinuxIA32 implements Isa {
>  	return result;
>      }
>  
> +
>      private static LinuxIA32 isa;
>      static LinuxIA32 isaSingleton () {
>  	if (isa == null)
>  	    isa = new LinuxIA32 ();
>  	return isa;
>      }
> +
> +
>  }
> diff --git a/frysk-core/frysk/proc/live/LinuxX8664.java b/frysk-core/frysk/proc/live/LinuxX8664.java
> index 8ee4876..3dd3dfc 100644
> --- a/frysk-core/frysk/proc/live/LinuxX8664.java
> +++ b/frysk-core/frysk/proc/live/LinuxX8664.java
> @@ -50,6 +50,41 @@ import frysk.proc.Auxv;
>  class LinuxX8664 implements Isa {
>      private static final Instruction X8664Breakpoint
>  	= new Instruction(new byte[] { (byte)0xcc }, false);
> +
> +
> +    // Architecture Watchpoint Count
> +    private final int NoOfWatchpoints = 7;
> +
> +    /**
> +     * Builds a watchpoint. Takes a task, an address, a 
> +     * range and a register index.
> +     *
> +     * @return boolean whether the watchpoint
> +     * was set succesfully.
> +     */
> +    public final boolean setWatchpoint(Task task, long addr, 
> +				       long range, int index) {
> +	throw new RuntimeException("Watchpoints not supported on this arch");
> +    }
> +
> +    /**
> +     * Deletes a watchpoint. Takes a task, and a range.
> +     *
> +     * @return boolean whether the watchpoint
> +     * was deleted succesfully.
> +     */
> +    public final boolean deleteWatchpoint(Task task, int index) {
> +	throw new RuntimeException("Watchpoints not supported on this arch");
> +    }
> +
> +    /**
> +     * Returns number of watchpoints for this architecture
> +     *
> +     * @return int number of usable watchpoints.
> +     */
> +    public final int getWatchpointCount() {
> +	return NoOfWatchpoints;
> +    }
>    
>      /**
>       * Get the breakpoint instruction for X8664.
>
>
> hooks/post-receive
> --
> frysk system monitor/debugger
>   

           reply	other threads:[~2008-03-26 16:47 UTC|newest]

Thread overview: expand[flat|nested]  mbox.gz  Atom feed
 [parent not found: <20080326130354.5799.qmail@sourceware.org>]

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=47EA7E0E.4030406@redhat.com \
    --to=pmuldoon@redhat.com \
    --cc=frysk@sourceware.org \
    /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).