public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: Simplify SOLibMapBuilder, and unbotch build.
@ 2008-02-19 16:43 cagney
  0 siblings, 0 replies; only message in thread
From: cagney @ 2008-02-19 16:43 UTC (permalink / raw)
  To: frysk-cvs

The branch, master has been updated
       via  671c1792694679b286b5dcac3c31430b9a6db350 (commit)
      from  06cbed2bceaedb7beb6719a3395f48b21ea279ef (commit)

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

- Log -----------------------------------------------------------------
commit 671c1792694679b286b5dcac3c31430b9a6db350
Author: Andrew Cagney <cagney@redhat.com>
Date:   Tue Feb 19 11:41:59 2008 -0500

    Simplify SOLibMapBuilder, and unbotch build.
    
    frysk-core/frysk/proc/dead/ChangeLog
    2008-02-19  Andrew Cagney  <cagney@redhat.com>
    
    	* SOLibMapBuilder.java (construct(File,long)): Replace
    	construct(File,long,long).
    	* LinuxCoreProc.java: Update.
    	* LinuxExeProc.java: Update.
    
    frysk-core/frysk/util/ChangeLog
    2008-02-19  Andrew Cagney  <cagney@redhat.com>
    
    	* TestCoredumpAction.java: Fix merge botch.

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

Summary of changes:
 frysk-core/frysk/proc/dead/ChangeLog            |    5 ++
 frysk-core/frysk/proc/dead/LinuxCoreProc.java   |    5 +-
 frysk-core/frysk/proc/dead/LinuxExeProc.java    |    2 +-
 frysk-core/frysk/proc/dead/SOLibMapBuilder.java |   70 +++++++++++------------
 frysk-core/frysk/util/ChangeLog                 |   10 ++-
 frysk-core/frysk/util/TestCoredumpAction.java   |    9 +---
 6 files changed, 50 insertions(+), 51 deletions(-)

First 500 lines of diff:
diff --git a/frysk-core/frysk/proc/dead/ChangeLog b/frysk-core/frysk/proc/dead/ChangeLog
index 013bbfc..4f48c46 100644
--- a/frysk-core/frysk/proc/dead/ChangeLog
+++ b/frysk-core/frysk/proc/dead/ChangeLog
@@ -1,5 +1,10 @@
 2008-02-19  Andrew Cagney  <cagney@redhat.com>
 
+	* SOLibMapBuilder.java (construct(File,long)): Replace
+	construct(File,long,long).
+	* LinuxCoreProc.java: Update.
+	* LinuxExeProc.java: Update.
+
 	* CorefileByteBuffer.java: Update to match lib.dwfl.
 	* SOLibMapBuilder.java: Ditto.
 	* LinuxExeHost.java: Ditto.
diff --git a/frysk-core/frysk/proc/dead/LinuxCoreProc.java b/frysk-core/frysk/proc/dead/LinuxCoreProc.java
index 1a51aa6..4f62d03 100644
--- a/frysk-core/frysk/proc/dead/LinuxCoreProc.java
+++ b/frysk-core/frysk/proc/dead/LinuxCoreProc.java
@@ -471,14 +471,15 @@ public class LinuxCoreProc extends DeadProc {
 	while (mapsIterator.hasNext()) {
 	    Linkmap singleLinkMap = (Linkmap) mapsIterator.next();
 	    if ((!singleLinkMap.name.equals("")) && (!singleLinkMap.name.equals("[vdso]")))
-		SOMaps.construct(new File(singleLinkMap.name),singleLinkMap.l_addr,this.getMainTask().getISA().wordSize());
+		SOMaps.construct(new File(singleLinkMap.name),
+				 singleLinkMap.l_addr);
 	    if (singleLinkMap.name.equals("[vdso]"))
 		SOMaps.buildMap(singleLinkMap.l_addr,0,true,true,true,0,singleLinkMap.name,0x1000);
 	}
 
 
 	// Add in case for executables maps.
-	SOMaps.construct(this.exefileBackEnd,0,this.getMainTask().getISA().wordSize());	    
+	SOMaps.construct(this.exefileBackEnd, 0);
 
 	// Reconcile maps
 	Iterator i = SOMaps.list.iterator();
diff --git a/frysk-core/frysk/proc/dead/LinuxExeProc.java b/frysk-core/frysk/proc/dead/LinuxExeProc.java
index 02add4d..00c9af8 100644
--- a/frysk-core/frysk/proc/dead/LinuxExeProc.java
+++ b/frysk-core/frysk/proc/dead/LinuxExeProc.java
@@ -121,7 +121,7 @@ public class LinuxExeProc extends DeadProc {
 	
 	BuildExeMaps SOMaps = new BuildExeMaps();
 	// Add in case for executables maps.
-	SOMaps.construct(this.host.exeFile, 0, this.getMainTask().getISA().wordSize());
+	SOMaps.construct(this.host.exeFile, 0);
     }
 
 }
diff --git a/frysk-core/frysk/proc/dead/SOLibMapBuilder.java b/frysk-core/frysk/proc/dead/SOLibMapBuilder.java
index 9b1b945..e5442a6 100644
--- a/frysk-core/frysk/proc/dead/SOLibMapBuilder.java
+++ b/frysk-core/frysk/proc/dead/SOLibMapBuilder.java
@@ -58,47 +58,45 @@ public abstract class SOLibMapBuilder {
   protected SOLibMapBuilder() {
   }
   
-  /**
-   * Scan the ELF file building up a list of memory maps.
-   */
-  public final void construct(File clientSolib, long base_addr, int wordSize) {
-
-    Elf solib = openElf(clientSolib);
-    ElfEHeader eHeader = solib.getEHeader();
-    
-    for(int z=0; z<eHeader.phnum; z++)
-      {
+    /**
+     * Scan the ELF file building up a list of memory maps.
+     */
+    public final void construct(File clientSolib, long baseAddr) {
+	Elf solib = openElf(clientSolib);
+	ElfEHeader eHeader = solib.getEHeader();
+	int wordSize = eHeader.getWordSize();
 	
-	ElfPHeader pHeader = solib.getPHeader(z);
-	if ((pHeader.type == ElfPHeader.PTYPE_LOAD) )
-	  {
-	    if (base_addr + pHeader.vaddr != 0) 
-	    {
-		boolean read = (pHeader.flags &  ElfPHeader.PHFLAG_READABLE) > 0 ? true:false;
-		boolean write =  (pHeader.flags & ElfPHeader.PHFLAG_WRITABLE) > 0 ? true:false;
-		boolean execute = (pHeader.flags & ElfPHeader.PHFLAG_EXECUTABLE) > 0 ? true:false;
+	for(int z=0; z<eHeader.phnum; z++) {
+	    ElfPHeader pHeader = solib.getPHeader(z);
+	    if ((pHeader.type == ElfPHeader.PTYPE_LOAD)) {
+		if (baseAddr + pHeader.vaddr != 0) {
+		    boolean read = (pHeader.flags &  ElfPHeader.PHFLAG_READABLE) > 0 ? true:false;
+		    boolean write =  (pHeader.flags & ElfPHeader.PHFLAG_WRITABLE) > 0 ? true:false;
+		    boolean execute = (pHeader.flags & ElfPHeader.PHFLAG_EXECUTABLE) > 0 ? true:false;
 		
-		long mapBegin = base_addr + (pHeader.vaddr &~ (pHeader.align-1));
-		long mapEnd = base_addr + ((pHeader.vaddr + pHeader.memsz) + pHeader.align -1) &~ (pHeader.align-1);
+		    long mapBegin = baseAddr + (pHeader.vaddr &~ (pHeader.align-1));
+		    long mapEnd = baseAddr + ((pHeader.vaddr + pHeader.memsz) + pHeader.align -1) &~ (pHeader.align-1);
 
-		// On 32 bit systems, if a segment has been relocated ie base_addr > 0 and base_addr + vaddr is
-		// more than 0xffffffff then the address overlaps to 0++. As we are using a long, so it can store
-		// 64 bit addresses on 64 bit systems, check wordsize == 4 and if so, limit size of address space
-		//  to 32 bits.
-		if (wordSize == 4)
-		{
-		    mapBegin &= 0x00000000ffffffffl;
-		    mapEnd &= 0x00000000ffffffffl;
-		}
+		    // On 32 bit systems, if a segment has been
+		    // relocated ie baseAddr > 0 and baseAddr + vaddr
+		    // is more than 0xffffffff then the address
+		    // overlaps to 0++. As we are using a long, so it
+		    // can store 64 bit addresses on 64 bit systems,
+		    // check wordsize == 4 and if so, limit size of
+		    // address space to 32 bits.
+		    if (wordSize == 4) {
+			mapBegin &= 0x00000000ffffffffL;
+			mapEnd &= 0x00000000ffffffffL;
+		    }
 
-		long aOffset = (pHeader.offset &- pHeader.align);
-		buildMap(mapBegin, mapEnd, read, write, execute, 
-			aOffset, clientSolib.getPath(),pHeader.align);
+		    long aOffset = (pHeader.offset &- pHeader.align);
+		    buildMap(mapBegin, mapEnd, read, write, execute, 
+			     aOffset, clientSolib.getPath(),pHeader.align);
+		}
 	    }
-	  }
-      }
-    solib.close();
-  }
+	}
+	solib.close();
+    }
   
   /**
    * Build an address map covering [addressLow,addressHigh) with
diff --git a/frysk-core/frysk/util/ChangeLog b/frysk-core/frysk/util/ChangeLog
index 8778118..fb96bc0 100644
--- a/frysk-core/frysk/util/ChangeLog
+++ b/frysk-core/frysk/util/ChangeLog
@@ -1,13 +1,15 @@
 2008-02-19  Andrew Cagney  <cagney@redhat.com>
 
-	* CoredumpAction.java: Add stacjOnly parameter.
-	* TestCoredumpAction.java (testStackOnlyMap): New.
+	* TestCoredumpAction.java: Fix merge botch.
 	
-2008-02-19  Phil Muldoon  <pmuldoon@redhat.com>
-
 	* CommandlineParser.java: Update to match lib.dwfl.
 	* TestCoredumpAction.java: Ditto.
 
+2008-02-19  Phil Muldoon  <pmuldoon@redhat.com>
+
+	* CoredumpAction.java: Add stackOnly parameter.
+	* TestCoredumpAction.java (testStackOnlyMap): New.
+
 2008-02-14  Andrew Cagney  <cagney@redhat.com>
 
 	* CommandlineParser.java (parsePids(Proc[])): Replace
diff --git a/frysk-core/frysk/util/TestCoredumpAction.java b/frysk-core/frysk/util/TestCoredumpAction.java
index f6ef1ff..27faf47 100644
--- a/frysk-core/frysk/util/TestCoredumpAction.java
+++ b/frysk-core/frysk/util/TestCoredumpAction.java
@@ -269,14 +269,7 @@ public class TestCoredumpAction
     coreMap = coreMaps[mapNo];
     assertNotNull("Cannot find stack in core process", coreMap);    
 
-    Elf testElf = null;
-    try {
-	testElf = new Elf (coreFileName,
-			       ElfCommand.ELF_C_READ);
-    } catch(Exception e) {
-	fail("Cannot open elf file"+coreFileName);
-    }
-
+    Elf testElf = new Elf(testCore, ElfCommand.ELF_C_READ);
     ElfEHeader header = testElf.getEHeader();
     int count = header.phnum;
     int segCount = 0;


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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-02-19 16:43 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-02-19 16:43 [SCM] master: Simplify SOLibMapBuilder, and unbotch build cagney

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