public inbox for frysk@sourceware.org
 help / color / mirror / Atom feed
* Re: [SCM]  master: Rename Linux Host/Proc/Task to Linux Core/Ptrace  Host/Proc/Task.
       [not found] <20080103045553.11108.qmail@sourceware.org>
@ 2008-01-03 10:23 ` Phil Muldoon
  2008-01-03 20:49   ` Andrew Cagney
  0 siblings, 1 reply; 4+ messages in thread
From: Phil Muldoon @ 2008-01-03 10:23 UTC (permalink / raw)
  To: frysk; +Cc: Andrew Cagney

cagney@sourceware.org wrote:

Andrew

Was git-mv used in the rename of these classes? git log shows (at least 
for me) they lost all history :(

Regards

Phil
> The branch, master has been updated
>        via  6c524b69dd8d33075e37886dafaf69f492c0a30f (commit)
>       from  db09f6ef565b9afe958f9e248c918f01a02c2144 (commit)
>
> Those revisions listed above that are new to this repository have
> not appeared on any other notification email.
>
> - Log -----------------------------------------------------------------
> commit 6c524b69dd8d33075e37886dafaf69f492c0a30f
> Author: Andrew Cagney <cagney@redhat.com>
> Date:   Wed Jan 2 23:54:09 2008 -0500
>
>     Rename Linux Host/Proc/Task to Linux Core/Ptrace Host/Proc/Task.
>     
>     frysk-core/frysk/hpd/ChangeLog
>     2008-01-02  Andrew Cagney  <cagney@redhat.com>
>     
>     	* CoreCommand.java: Update; frysk.proc.dead.LinuxHost renamed to
>     	.LinuxCoreHost.
>     
>     frysk-core/frysk/proc/ChangeLog
>     2008-01-02  Andrew Cagney  <cagney@redhat.com>
>     
>     	frysk.proc.live.LinuxHost renamed to .LinuxPtraceHost and
>     	frysk.proc.dead.LinuxHost renamed to .LinuxCoreHost.
>     	* Manager.java: Update.
>     	* ProcBlockAction.java: Update.
>     
>     frysk-core/frysk/proc/dead/ChangeLog
>     2008-01-02  Andrew Cagney  <cagney@redhat.com>
>     
>     	* LinuxCoreHost.java: Rename LinuxHost.java.
>     	* LinuxCoreProc.java: Rename LinuxProc.java.
>     	* LinuxCoreTask.java: Rename LinuxTask.java.
>     	* TestLinuxCore.java: Update.
>     
>     frysk-core/frysk/proc/live/ChangeLog
>     2008-01-02  Andrew Cagney  <cagney@redhat.com>
>     
>     	* LinuxPtraceHost.java: Rename LinuxHost.java.
>     	* LinuxPtraceProc.java: Rename LinuxProc.java.
>     	* LinuxPtraceTask.java: Rename LinuxTask.java.
>     	* LinuxPtraceProcState.java: Rename LinuxProcState.java.
>     	* LinuxPtraceTaskState.java: Rename LinuxTaskState.java.
>     	* LinuxWaitBuilder.java: Update.
>     
>     frysk-core/frysk/util/ChangeLog
>     2008-01-02  Andrew Cagney  <cagney@redhat.com>
>     
>     	* TestCoredumpAction.java: Update frysk.proc.dead.LinuxHost
>     	renamed to .LinuxCoreHost.
>     	* TestStackTraceAction.java: Ditto.
>     	* Util.java: Ditto.
>     
>     frysk-gui/frysk/gui/srcwin/ChangeLog
>     2008-01-02  Andrew Cagney  <cagney@redhat.com>
>     
>     	* SourceWindow.java: Update; frysk.proc.dead.LinuxProc renamed to
>     	.LinuxCoreProc.
>
> -----------------------------------------------------------------------
>
> Summary of changes:
>  frysk-core/frysk/hpd/ChangeLog                     |    5 +
>  frysk-core/frysk/hpd/CoreCommand.java              |   16 +-
>  frysk-core/frysk/proc/ChangeLog                    |    5 +
>  frysk-core/frysk/proc/Manager.java                 |    8 +-
>  frysk-core/frysk/proc/ProcBlockAction.java         |    7 +-
>  frysk-core/frysk/proc/dead/ChangeLog               |    5 +
>  frysk-core/frysk/proc/dead/LinuxCoreHost.java      |  232 ++++++
>  frysk-core/frysk/proc/dead/LinuxCoreProc.java      |  771 ++++++++++++++++++
>  .../dead/{LinuxTask.java => LinuxCoreTask.java}    |  136 ++--
>  frysk-core/frysk/proc/dead/LinuxHost.java          |  234 ------
>  frysk-core/frysk/proc/dead/LinuxProc.java          |  856 --------------------
>  frysk-core/frysk/proc/dead/TestLinuxCore.java      |   12 +-
>  frysk-core/frysk/proc/live/ChangeLog               |    7 +
>  .../live/{LinuxHost.java => LinuxPtraceHost.java}  |   29 +-
>  .../live/{LinuxProc.java => LinuxPtraceProc.java}  |   14 +-
>  ...nuxProcState.java => LinuxPtraceProcState.java} |    7 +-
>  .../live/{LinuxTask.java => LinuxPtraceTask.java}  |   14 +-
>  ...nuxTaskState.java => LinuxPtraceTaskState.java} |    9 +-
>  frysk-core/frysk/proc/live/LinuxWaitBuilder.java   |   38 +-
>  frysk-core/frysk/util/ChangeLog                    |    7 +
>  frysk-core/frysk/util/TestCoredumpAction.java      |   12 +-
>  frysk-core/frysk/util/TestStackTraceAction.java    |    4 +-
>  frysk-core/frysk/util/Util.java                    |    6 +-
>  frysk-gui/frysk/gui/srcwin/ChangeLog               |    5 +
>  frysk-gui/frysk/gui/srcwin/SourceWindow.java       |    5 +-
>  25 files changed, 1187 insertions(+), 1257 deletions(-)
>  create mode 100644 frysk-core/frysk/proc/dead/LinuxCoreHost.java
>  create mode 100644 frysk-core/frysk/proc/dead/LinuxCoreProc.java
>  rename frysk-core/frysk/proc/dead/{LinuxTask.java => LinuxCoreTask.java} (55%)
>  delete mode 100644 frysk-core/frysk/proc/dead/LinuxHost.java
>  delete mode 100644 frysk-core/frysk/proc/dead/LinuxProc.java
>  rename frysk-core/frysk/proc/live/{LinuxHost.java => LinuxPtraceHost.java} (92%)
>  rename frysk-core/frysk/proc/live/{LinuxProc.java => LinuxPtraceProc.java} (95%)
>  rename frysk-core/frysk/proc/live/{LinuxProcState.java => LinuxPtraceProcState.java} (99%)
>  rename frysk-core/frysk/proc/live/{LinuxTask.java => LinuxPtraceTask.java} (95%)
>  rename frysk-core/frysk/proc/live/{LinuxTaskState.java => LinuxPtraceTaskState.java} (99%)
>
> First 500 lines of diff:
> diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog
> index 8a026a6..75c2749 100644
> --- a/frysk-core/frysk/hpd/ChangeLog
> +++ b/frysk-core/frysk/hpd/ChangeLog
> @@ -1,3 +1,8 @@
> +2008-01-02  Andrew Cagney  <cagney@redhat.com>
> +
> +	* CoreCommand.java: Update; frysk.proc.dead.LinuxHost renamed to
> +	.LinuxCoreHost.
> +
>  2008-01-02  Tim Moore  <timoore@redhat.com>
>  
>  	* TestBreakpoints.java (testBreakOnStructMemberName): New test.
> diff --git a/frysk-core/frysk/hpd/CoreCommand.java b/frysk-core/frysk/hpd/CoreCommand.java
> index 000dbe3..ed2f2b7 100644
> --- a/frysk-core/frysk/hpd/CoreCommand.java
> +++ b/frysk-core/frysk/hpd/CoreCommand.java
> @@ -49,7 +49,7 @@ import frysk.debuginfo.DebugInfoStackFactory;
>  import frysk.proc.Manager;
>  import frysk.proc.Proc;
>  import frysk.proc.Task;
> -import frysk.proc.dead.LinuxHost;
> +import frysk.proc.dead.LinuxCoreHost;
>  
>  public class CoreCommand extends ParameterizedCommand {
>  
> @@ -74,7 +74,7 @@ public class CoreCommand extends ParameterizedCommand {
>  	void interpret(CLI cli, Input cmd, Object options) {
>  
>  		Proc coreProc;
> -		LinuxHost coreHost = null;
> +		LinuxCoreHost coreHost = null;
>  
>  		// If > 2 parameter, then too many parameters.
>  		if (cmd.size() > 2) {
> @@ -143,21 +143,21 @@ public class CoreCommand extends ParameterizedCommand {
>  	}
>  
>  	// Build Correct Host on options.
> -	private LinuxHost getHost(File coreFile, File executable, boolean loadExe) {
> -		LinuxHost coreHost = null;
> +	private LinuxCoreHost getHost(File coreFile, File executable, boolean loadExe) {
> +		LinuxCoreHost coreHost = null;
>  		if (executable == null)
>  			if (!loadExe)
> -				coreHost = new LinuxHost(Manager.eventLoop, coreFile);
> +				coreHost = new LinuxCoreHost(Manager.eventLoop, coreFile);
>  			else
> -				coreHost = new LinuxHost(Manager.eventLoop, coreFile, null);
> +				coreHost = new LinuxCoreHost(Manager.eventLoop, coreFile, null);
>  		else
> -			coreHost = new LinuxHost(Manager.eventLoop, coreFile, executable);
> +			coreHost = new LinuxCoreHost(Manager.eventLoop, coreFile, executable);
>  
>  		return coreHost;
>  	}
>  
>  	// From a Host, get a Proc
> -	private Proc getProc(LinuxHost coreHost) {
> +	private Proc getProc(LinuxCoreHost coreHost) {
>  		// Get an iterator to the one process
>  		Iterator i = coreHost.getProcIterator();
>  
> diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog
> index f5d5c4f..bec7198 100644
> --- a/frysk-core/frysk/proc/ChangeLog
> +++ b/frysk-core/frysk/proc/ChangeLog
> @@ -1,5 +1,10 @@
>  2008-01-02  Andrew Cagney  <cagney@redhat.com>
>  
> +	frysk.proc.live.LinuxHost renamed to .LinuxPtraceHost and
> +	frysk.proc.dead.LinuxHost renamed to .LinuxCoreHost.
> +	* Manager.java: Update.
> +	* ProcBlockAction.java: Update.
> +
>  	* Task.java (set(TaskState)): Delete.
>  	(Task(TaskId,Proc,Task)): Replace Task(TaskId,Proc,Task,TaskState).
>  
> diff --git a/frysk-core/frysk/proc/Manager.java b/frysk-core/frysk/proc/Manager.java
> index 1e5e2e3..b8d8075 100644
> --- a/frysk-core/frysk/proc/Manager.java
> +++ b/frysk-core/frysk/proc/Manager.java
> @@ -40,7 +40,7 @@
>  package frysk.proc;
>  
>  import frysk.event.EventLoop;
> -import frysk.proc.live.LinuxHost;
> +import frysk.proc.live.LinuxPtraceHost;
>  
>  /**
>   * Manager of all operations within the proc model.
> @@ -53,12 +53,12 @@ public class Manager
>  {
>      // The host (for moment only the local native host).
>  
> -    // XXX: Should have the LinuxHost, along with any other host
> +    // XXX: Should have the LinuxPtraceHost, along with any other host
>      // types, register themselves and then have HOST set itself to the
>      // most appropriate.
>  
>      public static EventLoop eventLoop = EventLoop.factory ();
> -    public static Host host = new LinuxHost (eventLoop);
> +    public static Host host = new LinuxPtraceHost (eventLoop);
>  
>      /**
>       * XXX: For testing, resets the Manager back to it's default
> @@ -67,7 +67,7 @@ public class Manager
>      public static Host resetXXX ()
>      {
>  	eventLoop = EventLoop.factory ();
> -	host = new LinuxHost (eventLoop);
> +	host = new LinuxPtraceHost(eventLoop);
>  	return host;
>      }
>  }
> diff --git a/frysk-core/frysk/proc/ProcBlockAction.java b/frysk-core/frysk/proc/ProcBlockAction.java
> index fef1fb3..080b92e 100644
> --- a/frysk-core/frysk/proc/ProcBlockAction.java
> +++ b/frysk-core/frysk/proc/ProcBlockAction.java
> @@ -47,7 +47,7 @@ import java.util.logging.Level;
>  import java.util.logging.Logger;
>  
>  import frysk.event.Event;
> -import frysk.proc.dead.LinuxHost;
> +import frysk.proc.dead.LinuxCoreHost;
>  
>  /**
>   * This class blocks all of the threads in a process and performs a given action
> @@ -173,9 +173,8 @@ public class ProcBlockAction
>      
>    }
>    
> -  public ProcBlockAction (File coreFile)
> -  {
> -    LinuxHost core = new LinuxHost(Manager.eventLoop, coreFile);
> +  public ProcBlockAction (File coreFile) {
> +    LinuxCoreHost core = new LinuxCoreHost(Manager.eventLoop, coreFile);
>  
>      core.requestRefreshXXX();
>      Manager.eventLoop.runPending();
> diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog
> index 61dfe43..9488b1f 100644
> --- a/frysk-core/frysk/proc/dead/ChangeLog
> +++ b/frysk-core/frysk/proc/dead/ChangeLog
> @@ -1,5 +1,10 @@
>  2008-01-02  Andrew Cagney  <cagney@redhat.com>
>  
> +	* LinuxCoreHost.java: Rename LinuxHost.java.
> +	* LinuxCoreProc.java: Rename LinuxProc.java.
> +	* LinuxCoreTask.java: Rename LinuxTask.java.
> +	* TestLinuxCore.java: Update.
> +
>  	* DeadTask.java (set(TaskState)): Delete.
>  	
>  	* LinuxTaskState.java: Delete.
> diff --git a/frysk-core/frysk/proc/dead/LinuxCoreHost.java b/frysk-core/frysk/proc/dead/LinuxCoreHost.java
> new file mode 100644
> index 0000000..c9b1e43
> --- /dev/null
> +++ b/frysk-core/frysk/proc/dead/LinuxCoreHost.java
> @@ -0,0 +1,232 @@
> +// This file is part of the program FRYSK.
> +//
> +// Copyright 2007 Red Hat Inc.
> +//
> +// FRYSK is free software; you can redistribute it and/or modify it
> +// under the terms of the GNU General Public License as published by
> +// the Free Software Foundation; version 2 of the License.
> +//
> +// FRYSK is distributed in the hope that it will be useful, but
> +// WITHOUT ANY WARRANTY; without even the implied warranty of
> +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> +// General Public License for more details.
> +// 
> +// You should have received a copy of the GNU General Public License
> +// along with FRYSK; if not, write to the Free Software Foundation,
> +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
> +// 
> +// In addition, as a special exception, Red Hat, Inc. gives You the
> +// additional right to link the code of FRYSK with code not covered
> +// under the GNU General Public License ("Non-GPL Code") and to
> +// distribute linked combinations including the two, subject to the
> +// limitations in this paragraph. Non-GPL Code permitted under this
> +// exception must only link to the code of FRYSK through those well
> +// defined interfaces identified in the file named EXCEPTION found in
> +// the source code files (the "Approved Interfaces"). The files of
> +// Non-GPL Code may instantiate templates or use macros or inline
> +// functions from the Approved Interfaces without causing the
> +// resulting work to be covered by the GNU General Public
> +// License. Only Red Hat, Inc. may make changes or additions to the
> +// list of Approved Interfaces. You must obey the GNU General Public
> +// License in all respects for all of the FRYSK code and other code
> +// used in conjunction with FRYSK except the Non-GPL Code covered by
> +// this exception. If you modify this file, you may extend this
> +// exception to your version of the file, but you are not obligated to
> +// do so. If you do not wish to provide this exception without
> +// modification, you must delete this exception statement from your
> +// version and license this file solely under the GPL without
> +// exception.
> +
> +package frysk.proc.dead;
> +
> +import frysk.event.Event;
> +import frysk.event.EventLoop;
> +import java.util.LinkedList;
> +import java.util.List;
> +import java.io.File;
> +import java.util.Iterator;
> +
> +import lib.dwfl.Elf;
> +import lib.dwfl.ElfCommand;
> +import lib.dwfl.ElfData;
> +import lib.dwfl.ElfEHeader;
> +import lib.dwfl.ElfPHeader;
> +import lib.dwfl.ElfPrpsinfo;
> +import frysk.proc.Proc;
> +import frysk.proc.ProcId;
> +import frysk.proc.TaskObserver;
> +import frysk.proc.FindProc;
> +
> +public class LinuxCoreHost extends DeadHost {
> +
> +    CorefileStatus status = new CorefileStatus();
> +
> +    boolean hasRefreshed = false;
> +
> +    boolean exeSetToNull = false;
> +
> +    protected File coreFile = null;
> +
> +    protected File exeFile = null;
> +
> +    Elf corefileElf;
> +
> +    EventLoop eventLoop;
> +
> +    private LinuxCoreHost(EventLoop eventLoop, File coreFile, boolean doRefresh) {
> +	this.coreFile = coreFile;
> +	this.eventLoop = eventLoop;
> +	try {
> +	    this.corefileElf = new Elf(coreFile.getPath(),
> +				       ElfCommand.ELF_C_READ);
> +	} catch (Exception e) {
> +	    throw new RuntimeException("Corefile " + this.coreFile + " is "
> +				       + "not a valid ELF core file.");
> +	}
> +
> +	if ((corefileElf.getEHeader() == null) || 
> +	    (corefileElf.getEHeader().type != ElfEHeader.PHEADER_ET_CORE)) {
> +	    this.corefileElf.close();
> +	    throw new RuntimeException("'" + this.coreFile.getAbsolutePath()
> +				       + "' is not a corefile.");
> +	}
> +
> +	if (doRefresh)
> +	    this.sendRefresh(true);
> +    }
> +
> +    public LinuxCoreHost(EventLoop eventLoop, File coreFile) {
> +	this(eventLoop, coreFile, true);
> +    }
> +
> +    public LinuxCoreHost(EventLoop eventLoop, File coreFile, File exeFile) {
> +	this(eventLoop, coreFile, false);
> +	if (exeFile == null)
> +	    exeSetToNull = true;
> +
> +	if (exeSetToNull == false)
> +	    if (exeFile.canRead() && exeFile.exists()) {
> +		this.exeFile = exeFile;
> +		status.hasExe = true;
> +		status.hasExeProblem = false;
> +	    } else {
> +		status.hasExe = false;
> +		status.hasExeProblem = true;
> +		status.message = "The user provided executable: "
> +		    + exeFile.getAbsolutePath() + " could not be accessed";
> +	    }
> +	this.sendRefresh(true);
> +    }
> +
> +    public CorefileStatus getStatus() {
> +	return status;
> +    }
> +
> +    protected void sendRefresh(boolean refreshAll) {
> +
> +	if (this.hasRefreshed)
> +	    return;
> +	// Iterate (build) the /proc tree, passing each found PID to
> +	// procChanges where it can update the /proc tree.
> +	new DeconstructCoreFile(this.corefileElf);
> +	// Changes individual process.
> +	for (Iterator i = procPool.values().iterator(); i.hasNext();) {
> +	    LinuxCoreProc proc = (LinuxCoreProc) i.next();
> +	    proc.sendRefresh();
> +	}
> +	this.hasRefreshed = true;
> +    }
> +
> +    protected void sendRefresh(final ProcId procId, final FindProc finder) {
> +
> +	// Core files nevers never change 
> +	if (!(procPool.containsKey(procId))) {
> +	    eventLoop.add(new Event() {
> +		    public void execute() {
> +			finder.procNotFound(procId, new RuntimeException(
> +									 "Couldn't find the proc" + procId));
> +		    }
> +		});
> +	    return;
> +	}
> +
> +	LinuxCoreProc proc = (LinuxCoreProc) getProc(procId);
> +	proc.sendRefresh();
> +
> +	eventLoop.add(new Event() {
> +		public void execute() {
> +		    finder.procFound(procId);
> +		}
> +	    });
> +
> +    }
> +
> +    protected void sendCreateAttachedProc(String stdin, String stdout,
> +					  String stderr, String[] args, TaskObserver.Attached attached) {
> +    }
> +
> +    protected Proc sendrecSelf() {
> +	return null;
> +    }
> +
> +    private class DeconstructCoreFile {
> +	List addedProcs = new LinkedList();
> +
> +	//HashMap removedProcs = (HashMap) ((HashMap) procPool).clone();
> +	Elf coreFileElf;
> +
> +	ElfData noteData = null;
> +
> +	DeconstructCoreFile(Elf coreFileElf) {
> +	    this.coreFileElf = coreFileElf;
> +	    status.coreName = coreFile.getAbsolutePath();
> +	    ElfEHeader eHeader = this.coreFileElf.getEHeader();
> +
> +	    // Get number of program header entries.
> +	    long phSize = eHeader.phnum;
> +	    for (int i = 0; i < phSize; i++) {
> +		// Test if pheader is of types notes..
> +		ElfPHeader pHeader = coreFileElf.getPHeader(i);
> +		if (pHeader.type == ElfPHeader.PTYPE_NOTE) {
> +		    // if so, copy, break an leave.
> +		    noteData = coreFileElf.getRawData(pHeader.offset,
> +						      pHeader.filesz);
> +		    break;
> +		}
> +	    }
> +
> +	    if (noteData != null)
> +		update(noteData);
> +	}
> +
> +	Proc update(ElfData proc_pid) {
> +	    final ElfPrpsinfo coreProc = ElfPrpsinfo.decode(proc_pid);
> +	    final ProcId procId = new ProcId(coreProc.getPrPid());
> +	    // Currently there can only be one process per core file.
> +	    // What happens when we have two core files denoting the same
> +	    // process/pid? Leave the test here for now.
> +
> +	    Proc proc = (Proc) procPool.get(procId);
> +	    if (proc == null) {
> +		// core file processes have no parents as thy are captured
> +		// in isolation, and reconstructed.
> +		proc = new LinuxCoreProc(proc_pid, LinuxCoreHost.this, procId);
> +	    }
> +
> +	    addedProcs.add(proc);
> +
> +	    if (exeFile == null)
> +		status.hasExe = false;
> +	    else {
> +		status.hasExe = true;
> +		status.exeName = exeFile.getAbsolutePath();
> +	    }
> +	    return proc;
> +	}
> +
> +    }
> +
> +    protected void finalize() throws Throwable {
> +	corefileElf = null;
> +    }
> +}
> diff --git a/frysk-core/frysk/proc/dead/LinuxCoreProc.java b/frysk-core/frysk/proc/dead/LinuxCoreProc.java
> new file mode 100644
> index 0000000..ed8a492
> --- /dev/null
> +++ b/frysk-core/frysk/proc/dead/LinuxCoreProc.java
> @@ -0,0 +1,771 @@
> +// This file is part of the program FRYSK.
> +//
> +// Copyright 2007, 2008 Red Hat Inc.
> +//
> +// FRYSK is free software; you can redistribute it and/or modify it
> +// under the terms of the GNU General Public License as published by
> +// the Free Software Foundation; version 2 of the License.
> +//
> +// FRYSK is distributed in the hope that it will be useful, but
> +// WITHOUT ANY WARRANTY; without even the implied warranty of
> +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
> +// General Public License for more details.
> +// 
> +// You should have received a copy of the GNU General Public License
> +// along with FRYSK; if not, write to the Free Software Foundation,
> +// Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
> +// 
> +// In addition, as a special exception, Red Hat, Inc. gives You the
> +// additional right to link the code of FRYSK with code not covered
> +// under the GNU General Public License ("Non-GPL Code") and to
> +// distribute linked combinations including the two, subject to the
> +// limitations in this paragraph. Non-GPL Code permitted under this
> +// exception must only link to the code of FRYSK through those well
> +// defined interfaces identified in the file named EXCEPTION found in
> +// the source code files (the "Approved Interfaces"). The files of
> +// Non-GPL Code may instantiate templates or use macros or inline
> +// functions from the Approved Interfaces without causing the
> +// resulting work to be covered by the GNU General Public
> +// License. Only Red Hat, Inc. may make changes or additions to the
> +// list of Approved Interfaces. You must obey the GNU General Public
> +// License in all respects for all of the FRYSK code and other code
> +// used in conjunction with FRYSK except the Non-GPL Code covered by
> +// this exception. If you modify this file, you may extend this
> +// exception to your version of the file, but you are not obligated to
> +// do so. If you do not wish to provide this exception without
> +// modification, you must delete this exception statement from your
> +// version and license this file solely under the GPL without
> +// exception.
> +
> +package frysk.proc.dead;
> +
> +import lib.dwfl.Elf;
> +import lib.dwfl.ElfData;
> +import lib.dwfl.ElfException;
> +import lib.dwfl.ElfPrpsinfo;
> +import lib.dwfl.ElfPrAuxv;
> +import lib.dwfl.ElfEHeader;
> +import lib.dwfl.ElfPrstatus;
> +import lib.dwfl.ElfPHeader;
> +import lib.dwfl.ElfCommand;
> +import lib.dwfl.ElfSection;
> +import lib.dwfl.ElfPrFPRegSet;
> +import lib.dwfl.ElfPrXFPRegSet;
> +import frysk.sys.proc.AuxvBuilder;
> +import java.util.logging.Level;
> +import java.util.Iterator;
> +import java.io.File;
> +import java.util.ArrayList;
> +import frysk.proc.ProcId;
> +import frysk.proc.Task;
> +import frysk.proc.Auxv;
> +import frysk.proc.Isa;
> +import frysk.proc.IsaFactory;
> +import frysk.proc.MemoryMap;
> +import frysk.isa.ISA;
> +import frysk.isa.ElfMap;
> +
> +public class LinuxCoreProc extends DeadProc {
> +  
> +    private ElfData elfData = null;
> +    private ElfPrpsinfo elfProc = null;
> +    private CorefileByteBuffer memory = null;
> +    private File corefileBackEnd = null;
> +    private File exefileBackEnd = null;
> +
> +    // Segment and solib metadata
> +    private MapAddressHeader metaData[];
> +    private boolean metaDataBuilt = false;
> +
> +
> +    public LinuxCoreProc(ElfData data, LinuxCoreHost host, ProcId procId ) {
> +	super(host, null, procId);
> +	this.elfData = data;
> +	this.elfProc = ElfPrpsinfo.decode(elfData);
> +	this.corefileBackEnd = host.coreFile;
> +
> +	// Executable is null (non-specified), find the executable
> +	// as it is written in the corefile. 
> +	if ((host.exeFile == null) && (host.exeSetToNull == false)) {
> +	    File exeFileName = new File(sendrecExe());
> +	    if ((exeFileName.exists()) && (exeFileName.canRead()))
> +		host.exeFile = exeFileName;
> +	
> +	}
> +	this.exefileBackEnd = host.exeFile;
> +    }	
> +
> +    protected String sendrecCommand() {
> +	return elfProc.getPrFname();
> +    }
> +
>
>
> hooks/post-receive
> --
> frysk system monitor/debugger
>   

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [SCM]  master: Rename Linux Host/Proc/Task to Linux Core/Ptrace  Host/Proc/Task.
  2008-01-03 10:23 ` [SCM] master: Rename Linux Host/Proc/Task to Linux Core/Ptrace Host/Proc/Task Phil Muldoon
@ 2008-01-03 20:49   ` Andrew Cagney
  2008-01-03 21:00     ` Roland McGrath
  0 siblings, 1 reply; 4+ messages in thread
From: Andrew Cagney @ 2008-01-03 20:49 UTC (permalink / raw)
  To: Phil Muldoon; +Cc: frysk

Phil Muldoon wrote:
> cagney@sourceware.org wrote:
>
> Andrew
>
> Was git-mv used in the rename of these classes? git log shows (at 
> least for me) they lost all history :(
>

Yes, I used git-mv; the exact sequence was <<git-mv ... ; re-indent>> 
though.

Andrew

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [SCM]  master: Rename Linux Host/Proc/Task to Linux Core/Ptrace  Host/Proc/Task.
  2008-01-03 20:49   ` Andrew Cagney
@ 2008-01-03 21:00     ` Roland McGrath
  2008-01-07 12:40       ` Phil Muldoon
  0 siblings, 1 reply; 4+ messages in thread
From: Roland McGrath @ 2008-01-03 21:00 UTC (permalink / raw)
  To: Andrew Cagney; +Cc: Phil Muldoon, frysk

git-mv does not do anything special, in fact.  GIT's support for file
renaming is just implicit detection, not explicit markers from user action.
So, what matters is doing a commit that removes file A and adds file B,
where A and B have completely identical contents (matching sha1sum).
To preserve history, you have to carefully do a commit that only renames,
and then a commit that touches the contents of the file.


Thanks,
Roland

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [SCM]  master: Rename Linux Host/Proc/Task to Linux Core/Ptrace   Host/Proc/Task.
  2008-01-03 21:00     ` Roland McGrath
@ 2008-01-07 12:40       ` Phil Muldoon
  0 siblings, 0 replies; 4+ messages in thread
From: Phil Muldoon @ 2008-01-07 12:40 UTC (permalink / raw)
  To: Roland McGrath; +Cc: Andrew Cagney, frysk

Roland McGrath wrote:
> git-mv does not do anything special, in fact.  GIT's support for file
> renaming is just implicit detection, not explicit markers from user action.
> So, what matters is doing a commit that removes file A and adds file B,
> where A and B have completely identical contents (matching sha1sum).
> To preserve history, you have to carefully do a commit that only renames,
> and then a commit that touches the contents of the file.
>   

Well that jolly well rots. ;) So in future then to preserve log history 
a mv should be its own commit, and only the rename should be the commit.

Regards

Phil

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2008-01-07 12:40 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20080103045553.11108.qmail@sourceware.org>
2008-01-03 10:23 ` [SCM] master: Rename Linux Host/Proc/Task to Linux Core/Ptrace Host/Proc/Task Phil Muldoon
2008-01-03 20:49   ` Andrew Cagney
2008-01-03 21:00     ` Roland McGrath
2008-01-07 12:40       ` Phil Muldoon

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).