public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: cagney@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: Simplify SOLibMapBuilder, and unbotch build.
Date: Tue, 19 Feb 2008 16:43:00 -0000	[thread overview]
Message-ID: <20080219164316.25572.qmail@sourceware.org> (raw)

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


                 reply	other threads:[~2008-02-19 16:43 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=20080219164316.25572.qmail@sourceware.org \
    --to=cagney@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).