public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: pmuldoon@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Complete move to constructing GPR notes as byte buffers, not BigIntegers.
Date: Thu, 29 Nov 2007 09:40:00 -0000	[thread overview]
Message-ID: <20071129094059.24823.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  ad3897b147d7d155b38ee9bb666c953b782a7fdd (commit)
      from  2db907516bfc9f5f893e64b795ec2ffed349d6f8 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email.

- Log -----------------------------------------------------------------
commit ad3897b147d7d155b38ee9bb666c953b782a7fdd
Author: Phil Muldoon <pmuldoon@redhat.com>
Date:   Thu Nov 29 09:40:51 2007 +0000

    Complete move to constructing GPR notes as byte buffers, not BigIntegers.
    
    2007-11-29  Phil Muldoon  <pmuldoon@redhat.com>
    
    	* IA32LinuxElfCorefile.java(writeNotePrstatus): Construct
    	byte-ordered buffer for GP Registers. Do not use BigIntegers.
    	Account for wordSize with Registers < wordSize.
    	(bytesToBigInteger) Delete.
    	* X8664LinuxElfCorefile.java: Ditto.
    	* PPC32LinuxElfCorefile.java: Ditto.
    	* PPC64LinuxElfCorefile.java: Ditto.
    
    2007-11-29  Phil Muldoon  <pmuldoon@redhat.com>
    
    	* cni/ElfPrstatus.cxx (ElfPrstatus::fillMemRegion): Copy
    	buffer to structure, do not build buffer.
    	* ElfPrstatus.java (setPrGPRegisterBuffer): New.
    	(setPrGPReg): Delete.
    	(convertToLong): Delete.
    	(getPrGPRegIterator): Delete.

-----------------------------------------------------------------------

Summary of changes:
 frysk-core/frysk/util/ChangeLog                  |   10 +++
 frysk-core/frysk/util/IA32LinuxElfCorefile.java  |   83 +++++++++++----------
 frysk-core/frysk/util/PPC32LinuxElfCorefile.java |   77 ++++++++------------
 frysk-core/frysk/util/PPC64LinuxElfCorefile.java |   85 +++++++++-------------
 frysk-core/frysk/util/X8664LinuxElfCorefile.java |   62 ++++++++--------
 frysk-sys/lib/dwfl/ChangeLog                     |    9 +++
 frysk-sys/lib/dwfl/ElfPrstatus.java              |   36 +---------
 frysk-sys/lib/dwfl/cni/ElfPrstatus.cxx           |   16 +----
 8 files changed, 165 insertions(+), 213 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog
index d8feb8e..8e69317 100644
--- a/frysk-core/frysk/util/ChangeLog
+++ b/frysk-core/frysk/util/ChangeLog
@@ -1,3 +1,13 @@
+2007-11-29  Phil Muldoon  <pmuldoon@redhat.com>
+
+	* IA32LinuxElfCorefile.java(writeNotePrstatus): Construct
+	byte-ordered buffer for GP Registers. Do not use BigIntegers.
+	Account for wordSize with Registers < wordSize.
+	(bytesToBigInteger) Delete.
+	* X8664LinuxElfCorefile.java: Ditto.
+	* PPC32LinuxElfCorefile.java: Ditto.
+	* PPC64LinuxElfCorefile.java: Ditto.
+
 2007-11-28  Tim Moore  <timoore@redhat.com>
 
 	* TestCountDownLatch.java (testTimeout): wrap time out await in
diff --git a/frysk-core/frysk/util/IA32LinuxElfCorefile.java b/frysk-core/frysk/util/IA32LinuxElfCorefile.java
index 7e6f17a..be6bdfc 100644
--- a/frysk-core/frysk/util/IA32LinuxElfCorefile.java
+++ b/frysk-core/frysk/util/IA32LinuxElfCorefile.java
@@ -42,7 +42,6 @@ package frysk.util;
 import frysk.proc.Proc;
 import frysk.proc.Task;
 import inua.eio.ByteBuffer;
-import inua.eio.ByteOrder;
 
 import lib.dwfl.ElfNhdr;
 import lib.dwfl.ElfNhdrType;
@@ -59,7 +58,7 @@ import frysk.sys.proc.Stat;
 import frysk.sys.proc.Status;
 import frysk.isa.IA32Registers;
 import frysk.isa.Register;
-import java.math.BigInteger;
+
 
 /**
  * LinuxElfCorefilex86. Extends LinuxCorefile. Fill in
@@ -181,32 +180,52 @@ public class IA32LinuxElfCorefile extends LinuxElfCorefile {
 	// are the names are the same. Create a string[] map to bridge
 	// gap between frysk and core file register order.
 
-	Register[] ptraceRegisterMap = {IA32Registers.EBX,
-				      IA32Registers.ECX,
-				      IA32Registers.EDX,
-				      IA32Registers.ESI,
-				      IA32Registers.EDI,
-				      IA32Registers.EBP,
-				      IA32Registers.EAX,
-     				      IA32Registers.DS,
-				      IA32Registers.ES,
-				      IA32Registers.FS,
-				      IA32Registers.GS,
-				      IA32Registers.ORIG_EAX,				      
-				      IA32Registers.EIP,
-				      IA32Registers.CS,
-				      IA32Registers.EFLAGS,
-      				      IA32Registers.ESP,
-				      IA32Registers.SS};
+	Register[] ptraceRegisterMap = {
+	  IA32Registers.EBX,
+	  IA32Registers.ECX,
+	  IA32Registers.EDX,
+	  IA32Registers.ESI,
+	  IA32Registers.EDI,
+	  IA32Registers.EBP,
+	  IA32Registers.EAX,
+	  IA32Registers.DS,
+	  IA32Registers.ES,
+	  IA32Registers.FS,
+	  IA32Registers.GS,
+	  IA32Registers.ORIG_EAX,				      
+	  IA32Registers.EIP,
+	  IA32Registers.CS,
+	  IA32Registers.EFLAGS,
+	  IA32Registers.ESP,
+	  IA32Registers.SS
+	};
 
 	// Set GP register info
+	int index = 0;
+	int arraySize = 0;
+	int regSize;
+	int wordSize = task.getISA().wordSize();
+	
+	// Allocate space in array. Even though there are some registers < wordSize, they still have
+	// to sit in a wordSize area
+	for (int l = 0; l < ptraceRegisterMap.length; l++)
+	  if (ptraceRegisterMap[l].getType().getSize() < wordSize)
+	    arraySize +=wordSize;
+	  else
+	    arraySize +=ptraceRegisterMap[l].getType().getSize();
+	
+	byte[] byteOrderedRegister= new byte[arraySize];
+	
+	// Populate array, using wordSize as minimum size
 	for (int i = 0; i < ptraceRegisterMap.length; i++) {
-	    int registerSize = ptraceRegisterMap[i].getType().getSize();
-	    byte[] byteOrderedRegister = new byte[registerSize];
-	    task.access(ptraceRegisterMap[i], 0, registerSize,	byteOrderedRegister, 0, false);
-	    prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister));
+	  regSize = ptraceRegisterMap[i].getType().getSize();
+	  if (regSize < wordSize)
+	    regSize = wordSize;
+	  task.access(ptraceRegisterMap[i], 0, regSize, byteOrderedRegister, index, false);
+	  index += regSize;
 	}
-
+	
+	prStatus.setPrGPRegisterBuffer(byteOrderedRegister);
 	
 	// Write it
 	nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus);
@@ -292,20 +311,4 @@ public class IA32LinuxElfCorefile extends LinuxElfCorefile {
 	return ElfEHeader.PHEADER_ELFCLASS32;
     }
 
-    // XXX: Function to convert bytes[] to BigInteger. 
-    // Will disappear when all BankRegisters are present on all
-    // all architectures, and  we can call task.access() on all 
-    // registers, and not convert to BigInteger.
-    private BigInteger bytesToBigInteger(byte[] bytes)
-    {
-    	if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) {
-	    for (int left = 0; left < bytes.length / 2; left++) {
-		int right = bytes.length - 1 - left;
-		byte temp = bytes[left];
-		bytes[left] = bytes[right];
-		bytes[right] = temp;
-	    }
-	}
-	return new BigInteger(bytes);
-    }
 }
diff --git a/frysk-core/frysk/util/PPC32LinuxElfCorefile.java b/frysk-core/frysk/util/PPC32LinuxElfCorefile.java
index 8180acf..fec155f 100644
--- a/frysk-core/frysk/util/PPC32LinuxElfCorefile.java
+++ b/frysk-core/frysk/util/PPC32LinuxElfCorefile.java
@@ -43,23 +43,19 @@
 
 package frysk.util;
 
-import java.math.BigInteger;
-
-import frysk.proc.Proc;
-import frysk.proc.Task;
 import inua.eio.ByteBuffer;
-import inua.eio.ByteOrder;
-
+import lib.dwfl.ElfEHeader;
+import lib.dwfl.ElfEMachine;
 import lib.dwfl.ElfNhdr;
 import lib.dwfl.ElfNhdrType;
-import lib.dwfl.ElfEMachine;
-import lib.dwfl.ElfEHeader;
 import lib.dwfl.ElfPrAuxv;
+import lib.dwfl.ElfPrFPRegSet;
 import lib.dwfl.ElfPrpsinfo;
 import lib.dwfl.ElfPrstatus;
-import lib.dwfl.ElfPrFPRegSet;
 import frysk.isa.PPC32Registers;
 import frysk.isa.Register;
+import frysk.proc.Proc;
+import frysk.proc.Task;
 import frysk.sys.proc.AuxvBuilder;
 import frysk.sys.proc.CmdLineBuilder;
 import frysk.sys.proc.Stat;
@@ -188,11 +184,6 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile {
 
         // The number of total common registers in PPC/PPC64 including nip, msr,
         // etc. Defined in the asm-ppc/elf.h.
-        int elfNGREG = 48;
-        int blankRegisterIndex = elfNGREG;
-
-        byte[] zeroVal = new byte[] { 0 };
-
         Register[] ptracePpcRegMap = { 
 	  PPC32Registers.NIP, PPC32Registers.MSR, PPC32Registers.ORIGR3,
 	  PPC32Registers.CTR, PPC32Registers.LR, PPC32Registers.XER,
@@ -210,23 +201,37 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile {
 	  PPC32Registers.GPR27, PPC32Registers.GPR28, PPC32Registers.GPR29,
 	  PPC32Registers.GPR30, PPC32Registers.GPR31};
 	
-        for (int i = 0; i < ptracePpcRegMap.length; i++) {
-	  int registerSize = ptracePpcRegMap[i].getType().getSize();
-	  byte[] byteOrderedRegister = new byte[registerSize];
-	  task.access(ptracePpcRegMap[i], 0, registerSize,  byteOrderedRegister, 0, false);
-	  prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister));
-        }
+        
+    	// Set GP register info
+    	int index = 0;
+    	int arraySize = 0;
+    	int regSize;
+    	int wordSize = task.getISA().wordSize();
+        int elfNGREG = 48;
 	
+    	// Allocate space in array. Even though there are some registers < wordSize, they still have
+    	// to sit in a wordSize area
+    	for (int l = 0; l < ptracePpcRegMap.length; l++)
+	  if (ptracePpcRegMap[l].getType().getSize() < wordSize)
+	    arraySize +=wordSize;
+	  else
+	    arraySize +=ptracePpcRegMap[l].getType().getSize();
 	
-        blankRegisterIndex = ptracePpcRegMap.length;
+    	int blankRegisterIndex = (elfNGREG - ptracePpcRegMap.length) * wordSize;
 	
-        BigInteger bigInt = new BigInteger(zeroVal);
+    	byte[] byteOrderedRegister= new byte[arraySize+blankRegisterIndex];
+	
+    	// Populate array, using wordSize as minimum size
+    	for (int i = 0; i < ptracePpcRegMap.length; i++) {
+	  regSize = ptracePpcRegMap[i].getType().getSize();
+	  if (regSize < wordSize)
+	    regSize = wordSize;
+	  task.access(ptracePpcRegMap[i], 0, regSize, byteOrderedRegister, index, false);
+	  index += regSize;
+    	}
+	
+    	prStatus.setPrGPRegisterBuffer(byteOrderedRegister);
 	
-	// On ppc, some register indexes are not defined in
-	// asm-<ISA>/ptrace.h.        
-        for (int index = blankRegisterIndex; index < elfNGREG; index++)
-          prStatus.setPrGPReg(index, bigInt);
-        
 	// Write it
 	nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus);
     }
@@ -295,22 +300,4 @@ public class PPC32LinuxElfCorefile extends LinuxElfCorefile {
     protected byte getElfMachineClass() {
 	return ElfEHeader.PHEADER_ELFCLASS32;
     }
-
-    // XXX: Function to convert bytes[] to BigInteger.
-    // Will disappear when all BankRegisters are present on all
-    // all architectures, and  we can call task.access() on all
-    // registers, and not convert to BigInteger.
-    private BigInteger bytesToBigInteger(byte[] bytes)
-    {
-        if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) {
-            for (int left = 0; left < bytes.length / 2; left++) {
-                int right = bytes.length - 1 - left;
-                byte temp = bytes[left];
-                bytes[left] = bytes[right];
-                bytes[right] = temp;
-            }
-        }
-        return new BigInteger(bytes);
-    }
-
 }
diff --git a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java
index 58553c7..df6b20b 100644
--- a/frysk-core/frysk/util/PPC64LinuxElfCorefile.java
+++ b/frysk-core/frysk/util/PPC64LinuxElfCorefile.java
@@ -43,25 +43,20 @@
 
 package frysk.util;
 
-import java.math.BigInteger;
-
-import frysk.proc.Proc;
-import frysk.proc.Task;
-import inua.eio.ByteOrder;
-
+import lib.dwfl.ElfEHeader;
+import lib.dwfl.ElfEMachine;
 import lib.dwfl.ElfNhdr;
 import lib.dwfl.ElfNhdrType;
-import lib.dwfl.ElfEMachine;
-import lib.dwfl.ElfEHeader;
 import lib.dwfl.ElfPrAuxv;
+import lib.dwfl.ElfPrFPRegSet;
 import lib.dwfl.ElfPrpsinfo;
 import lib.dwfl.ElfPrstatus;
-import lib.dwfl.ElfPrFPRegSet;
-
-import frysk.sys.proc.AuxvBuilder;
-import frysk.sys.proc.CmdLineBuilder;
 import frysk.isa.PPC64Registers;
 import frysk.isa.Register;
+import frysk.proc.Proc;
+import frysk.proc.Task;
+import frysk.sys.proc.AuxvBuilder;
+import frysk.sys.proc.CmdLineBuilder;
 import frysk.sys.proc.Stat;
 import frysk.sys.proc.Status;
 
@@ -188,11 +183,6 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile {
 
         // The number of total common registers in PPC/PPC64 including nip, msr,
         // etc. Defined in the asm-ppc64/elf.h.
-        int elfNGREG = 48;
-        int blankRegisterIndex = elfNGREG;
-
-        byte[] zeroVal = new byte[] { 0 };
-
         // XXX: if one register's offset is not defined in asm-ppc/ptrace.h or
         // asm-ppc64/ptrace.h,we did not dump it out and fill give the null Name.
         Register[] ptracePpc64RegMap = {
@@ -212,23 +202,36 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile {
 	  PPC64Registers.GPR27,  PPC64Registers.GPR28, PPC64Registers.GPR29,
 	  PPC64Registers.GPR30,  PPC64Registers.GPR31};
 
-        for (int i = 0; i < ptracePpc64RegMap.length; i++) {
-	  int registerSize = ptracePpc64RegMap[i].getType().getSize();
-	  byte[] byteOrderedRegister = new byte[registerSize];
-	  task.access(ptracePpc64RegMap[i], 0, registerSize,  byteOrderedRegister, 0, false);
-	  prStatus.setPrGPReg(i, bytesToBigInteger(byteOrderedRegister));
-        }
-
-
-        blankRegisterIndex = ptracePpc64RegMap.length;
-
-        BigInteger bigInt = new BigInteger(zeroVal);
+    	// Set GP register info
+    	int index = 0;
+    	int arraySize = 0;
+    	int regSize;
+    	int wordSize = task.getISA().wordSize();
+        int elfNGREG = 48;
+	
+    	// Allocate space in array. Even though there are some registers < wordSize, they still have
+    	// to sit in a wordSize area
+    	for (int l = 0; l < ptracePpc64RegMap.length; l++)
+	  if (ptracePpc64RegMap[l].getType().getSize() < wordSize)
+	    arraySize +=wordSize;
+	  else
+	    arraySize +=ptracePpc64RegMap[l].getType().getSize();
+	
+    	int blankRegisterIndex = (elfNGREG - ptracePpc64RegMap.length) * wordSize;
+	
+    	byte[] byteOrderedRegister= new byte[arraySize+blankRegisterIndex];
+	
+    	// Populate array, using wordSize as minimum size
+    	for (int i = 0; i < ptracePpc64RegMap.length; i++) {
+	  regSize = ptracePpc64RegMap[i].getType().getSize();
+	  if (regSize < wordSize)
+	    regSize = wordSize;
+	  task.access(ptracePpc64RegMap[i], 0, regSize, byteOrderedRegister, index, false);
+	  index += regSize;
+    	}
+	
+    	prStatus.setPrGPRegisterBuffer(byteOrderedRegister);
 
-        // On ppc, some register indexes are not defined in
-        // asm-<ISA>/ptrace.h.        
-        for (int index = blankRegisterIndex; index < elfNGREG; index++)
-          prStatus.setPrGPReg(index, bigInt);
-        
         // Write it
 	nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus);
     }
@@ -330,20 +333,4 @@ public class PPC64LinuxElfCorefile extends LinuxElfCorefile {
 	return ElfEHeader.PHEADER_ELFCLASS64;
     }
 
-    // XXX: Function to convert bytes[] to BigInteger.
-    // Will disappear when all BankRegisters are present on all
-    // all architectures, and  we can call task.access() on all
-    // registers, and not convert to BigInteger.
-    private BigInteger bytesToBigInteger(byte[] bytes)
-    {
-        if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) {
-            for (int left = 0; left < bytes.length / 2; left++) {
-                int right = bytes.length - 1 - left;
-                byte temp = bytes[left];
-                bytes[left] = bytes[right];
-                bytes[right] = temp;
-            }
-        }
-        return new BigInteger(bytes);
-    }
 }
diff --git a/frysk-core/frysk/util/X8664LinuxElfCorefile.java b/frysk-core/frysk/util/X8664LinuxElfCorefile.java
index c2dab9d..7d4fb1c 100644
--- a/frysk-core/frysk/util/X8664LinuxElfCorefile.java
+++ b/frysk-core/frysk/util/X8664LinuxElfCorefile.java
@@ -39,23 +39,19 @@
 
 package frysk.util;
 
-import java.math.BigInteger;
-
-import frysk.isa.Register;
-import frysk.isa.X8664Registers;
-import frysk.proc.Proc;
-import frysk.proc.Task;
 import inua.eio.ByteBuffer;
-import inua.eio.ByteOrder;
-
+import lib.dwfl.ElfEHeader;
+import lib.dwfl.ElfEMachine;
 import lib.dwfl.ElfNhdr;
 import lib.dwfl.ElfNhdrType;
-import lib.dwfl.ElfEMachine;
-import lib.dwfl.ElfEHeader;
 import lib.dwfl.ElfPrAuxv;
+import lib.dwfl.ElfPrFPRegSet;
 import lib.dwfl.ElfPrpsinfo;
 import lib.dwfl.ElfPrstatus;
-import lib.dwfl.ElfPrFPRegSet;
+import frysk.isa.Register;
+import frysk.isa.X8664Registers;
+import frysk.proc.Proc;
+import frysk.proc.Task;
 import frysk.sys.proc.AuxvBuilder;
 import frysk.sys.proc.CmdLineBuilder;
 import frysk.sys.proc.Stat;
@@ -212,12 +208,31 @@ public class X8664LinuxElfCorefile extends LinuxElfCorefile {
 	  X8664Registers.GS};
 
 	// Set GP register info
+	int index = 0;
+	int arraySize = 0;
+	int regSize;
+	int wordSize = task.getISA().wordSize();
+	
+	// Allocate space in array. Even though there are some registers < wordSize, they still have
+	// to sit in a wordSize area
+	for (int l = 0; l < ptraceRegisterMap.length; l++)
+	  if (ptraceRegisterMap[l].getType().getSize() < wordSize)
+	    arraySize +=wordSize;
+	  else
+	    arraySize +=ptraceRegisterMap[l].getType().getSize();
+	
+	byte[] byteOrderedRegister= new byte[arraySize];
+	
+	// Populate array, using wordSize as minimum size
 	for (int i = 0; i < ptraceRegisterMap.length; i++) {
-	  int registerSize = ptraceRegisterMap[i].getType().getSize();
-	  byte[] byteOrderedRegister = new byte[registerSize];
-	  task.access(ptraceRegisterMap[i], 0, registerSize,	byteOrderedRegister, 0, false);
-	  prStatus.setPrGPReg(i,bytesToBigInteger(byteOrderedRegister));
+	  regSize = ptraceRegisterMap[i].getType().getSize();
+	  if (regSize < wordSize)
+	    regSize = wordSize;
+	  task.access(ptraceRegisterMap[i], 0, regSize, byteOrderedRegister, index, false);
+	  index += regSize;
 	}
+	
+	prStatus.setPrGPRegisterBuffer(byteOrderedRegister);
 
 	// Write it
 	nhdrEntry.setNhdrDesc(ElfNhdrType.NT_PRSTATUS, prStatus);
@@ -285,21 +300,4 @@ public class X8664LinuxElfCorefile extends LinuxElfCorefile {
 	return ElfEHeader.PHEADER_ELFCLASS64;
     }
     
-    // XXX: Function to convert bytes[] to BigInteger. 
-    // Will disappear when all BankRegisters are present on all
-    // all architectures, and  we can call task.access() on all 
-    // registers, and not convert to BigInteger.
-    private BigInteger bytesToBigInteger(byte[] bytes)
-    {
-    	if (this.process.getMainTask().getISA().order() == ByteOrder.LITTLE_ENDIAN) {
-	    for (int left = 0; left < bytes.length / 2; left++) {
-		int right = bytes.length - 1 - left;
-		byte temp = bytes[left];
-		bytes[left] = bytes[right];
-		bytes[right] = temp;
-	    }
-	}
-	return new BigInteger(bytes);
-    }
-
 }
diff --git a/frysk-sys/lib/dwfl/ChangeLog b/frysk-sys/lib/dwfl/ChangeLog
index 7debe8b..4e0117e 100644
--- a/frysk-sys/lib/dwfl/ChangeLog
+++ b/frysk-sys/lib/dwfl/ChangeLog
@@ -1,3 +1,12 @@
+2007-11-29  Phil Muldoon  <pmuldoon@redhat.com>
+
+	* cni/ElfPrstatus.cxx (ElfPrstatus::fillMemRegion): Copy
+	buffer to structure, do not build buffer.
+	* ElfPrstatus.java (setPrGPRegisterBuffer): New.
+	(setPrGPReg): Delete.
+	(convertToLong): Delete.
+	(getPrGPRegIterator): Delete.
+	
 2007-11-20  Stan Cox  <scox@redhat.com>
 
 	* BaseTypes.java: Remove.
diff --git a/frysk-sys/lib/dwfl/ElfPrstatus.java b/frysk-sys/lib/dwfl/ElfPrstatus.java
index 6c2e999..0539521 100644
--- a/frysk-sys/lib/dwfl/ElfPrstatus.java
+++ b/frysk-sys/lib/dwfl/ElfPrstatus.java
@@ -41,7 +41,6 @@ package lib.dwfl;
 
 import java.util.ArrayList;
 import java.util.Iterator;
-import java.math.BigInteger;
 import inua.eio.ArrayByteBuffer;
 import inua.eio.ByteBuffer;
 import inua.eio.ByteOrder;
@@ -77,10 +76,7 @@ public class ElfPrstatus extends ElfNhdr.ElfNoteSectionEntry


hooks/post-receive
--
frysk system monitor/debugger


                 reply	other threads:[~2007-11-29  9:40 UTC|newest]

Thread overview: [no followups] expand[flat|nested]  mbox.gz  Atom feed

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=20071129094059.24823.qmail@sourceware.org \
    --to=pmuldoon@sourceware.org \
    --cc=frysk-cvs@sourceware.org \
    --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).