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