From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 17170 invoked by alias); 19 Feb 2008 16:19:53 -0000 Received: (qmail 17144 invoked by uid 367); 19 Feb 2008 16:19:53 -0000 Date: Tue, 19 Feb 2008 16:19:00 -0000 Message-ID: <20080219161953.17129.qmail@sourceware.org> From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: frysk-core/frysk/bindir/ChangeLog X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 764c4238327cee1cd0bb5f682d7cef444e14e0f9 X-Git-Newrev: 06cbed2bceaedb7beb6719a3395f48b21ea279ef Mailing-List: contact frysk-cvs-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: frysk-cvs-owner@sourceware.org Reply-To: frysk@sourceware.org X-SW-Source: 2008-q1/txt/msg00226.txt.bz2 The branch, master has been updated via 06cbed2bceaedb7beb6719a3395f48b21ea279ef (commit) from 764c4238327cee1cd0bb5f682d7cef444e14e0f9 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 06cbed2bceaedb7beb6719a3395f48b21ea279ef Author: Andrew Cagney Date: Tue Feb 19 11:15:44 2008 -0500 frysk-core/frysk/bindir/ChangeLog 2008-02-19 Andrew Cagney * TestFstep.java: Update to match lib.dwfl.Elf. frysk-core/frysk/debuginfo/ChangeLog 2008-02-19 Andrew Cagney * DebugInfo.java: Update to match lib.dwfl.Elf. frysk-core/frysk/dom/ChangeLog 2008-02-19 Andrew Cagney * DOMCommon.java: Update to match lib.dwfl.File. frysk-core/frysk/ftrace/ChangeLog 2008-02-19 Andrew Cagney * TestMappingGuard.java (performTestAllLibraiesGetDetected()): Make private. * ObjectFile.java: Update to match lib.dwfl.Elf. frysk-core/frysk/isa/ChangeLog 2008-02-19 Andrew Cagney * ElfMap.java: Update to match lib.dwfl. frysk-core/frysk/isa/corefiles/ChangeLog 2008-02-19 Andrew Cagney * IA32LinuxElfCorefile.java: Update to match lib.dwfl. * X8664LinuxElfCorefile.java: Ditto. * PPC64LinuxElfCorefile.java: Ditto. * PPC32LinuxElfCorefile.java: Ditto. * LinuxElfCorefile.java: Ditto. (getElfEndianType()): Delete. (getElfWordSize()): Delete. frysk-core/frysk/proc/dead/ChangeLog 2008-02-19 Andrew Cagney * CorefileByteBuffer.java: Update to match lib.dwfl. * SOLibMapBuilder.java: Ditto. * LinuxExeHost.java: Ditto. * LinuxExeTask.java: Ditto. * LinuxCoreTask.java: Ditto. * LinuxCoreHost.java: Ditto. * LinuxCoreProc.java: Ditto. frysk-core/frysk/proc/live/ChangeLog 2008-02-19 Andrew Cagney * IsaFactory.java: Update to match lib.dwfl. * TestTaskObserverCode.java: Ditto. frysk-core/frysk/util/ChangeLog 2008-02-19 Andrew Cagney * CommandlineParser.java: Update to match lib.dwfl. * TestCoredumpAction.java: Ditto. frysk-sys/lib/dwfl/ChangeLog 2008-02-19 Andrew Cagney * ElfFileException.java (ElfFileException(String)): Delete. (ElfFileException(String,String)): Delete. (ElfFileException(File,String)): New. (ElfFileException(File,Exception)): New. * Elf.java (Elf(String,ElfCommand)): Delete. (updateEHeader(ElfHeader)): Return void. (getLastErrorMsg()): Make static. (getLastErrorNo()): Make static. (getDescriptor(File,ElfCommand)): New. (Elf(FileDescriptor,ElfCommand)): New. (update(ElfCommand)): Return void. (createNewEHeader(int wordSize)): Return ElfEHeader. * ElfException.java: Extend RuntimeException. * cni/Elf.cxx (fillEHeader): Delete. (Elf::elf_getehdr): Throw an exception if there's a problem. (Elf::elf_update): Ditto. (Elf::elf_updatehdr): Ditto. * ElfEHeader.java (EI_CLASS): New. (getWordSize(), setWordSize()): New. (ElfEHeader()): Replace ElfEHeader(Elf). (DATANONE, DATA2LSB, DATA2MSB, DATA): Drop PHEADER_ prefix. (CLASSNONE, CLASS32, CLASS64, CLASS): Drop PHEADER_ prefix. (getByteOrder(), setByteOrder(ByteOrder)): New. * TestElf.java: Update. (testSetWordSize()): New. (testSetByteOrder()): New. * ElfPrXFPRegSet.java: Update. * ElfPrAuxv.java: Update. * ElfPrFPRegSet.java: Update. * ElfPrpsinfo.java: Update. * ElfPrstatus.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/bindir/ChangeLog | 4 + frysk-core/frysk/bindir/TestFstep.java | 16 +- frysk-core/frysk/debuginfo/ChangeLog | 4 + frysk-core/frysk/debuginfo/DebugInfo.java | 3 +- frysk-core/frysk/dom/ChangeLog | 4 + frysk-core/frysk/dom/DOMCommon.java | 6 +- frysk-core/frysk/ftrace/ChangeLog | 6 + frysk-core/frysk/ftrace/ObjectFile.java | 83 ++++----- frysk-core/frysk/ftrace/TestMappingGuard.java | 3 +- frysk-core/frysk/isa/ChangeLog | 4 + frysk-core/frysk/isa/ElfMap.java | 16 +-- frysk-core/frysk/isa/corefiles/ChangeLog | 12 +- .../frysk/isa/corefiles/IA32LinuxElfCorefile.java | 2 +- .../frysk/isa/corefiles/LinuxElfCorefile.java | 69 ++----- .../frysk/isa/corefiles/PPC32LinuxElfCorefile.java | 2 +- .../frysk/isa/corefiles/PPC64LinuxElfCorefile.java | 2 +- .../frysk/isa/corefiles/X8664LinuxElfCorefile.java | 2 +- frysk-core/frysk/proc/dead/ChangeLog | 10 + frysk-core/frysk/proc/dead/CorefileByteBuffer.java | 49 +---- frysk-core/frysk/proc/dead/LinuxCoreHost.java | 8 +- frysk-core/frysk/proc/dead/LinuxCoreProc.java | 7 +- frysk-core/frysk/proc/dead/LinuxExeHost.java | 7 +- frysk-core/frysk/proc/dead/LinuxExeTask.java | 3 +- frysk-core/frysk/proc/dead/SOLibMapBuilder.java | 49 ++---- frysk-core/frysk/proc/live/ChangeLog | 5 + frysk-core/frysk/proc/live/IsaFactory.java | 21 +-- .../frysk/proc/live/TestTaskObserverCode.java | 12 +- frysk-core/frysk/util/ChangeLog | 6 +- frysk-core/frysk/util/CommandlineParser.java | 4 +- frysk-core/frysk/util/TestCoredumpAction.java | 36 +--- frysk-sys/lib/dwfl/ChangeLog | 34 +++ frysk-sys/lib/dwfl/Elf.java | 73 ++++---- frysk-sys/lib/dwfl/ElfEHeader.java | 111 ++++++++-- frysk-sys/lib/dwfl/ElfException.java | 21 ++- frysk-sys/lib/dwfl/ElfFileException.java | 66 +++---- frysk-sys/lib/dwfl/ElfPrAuxv.java | 25 +-- frysk-sys/lib/dwfl/ElfPrFPRegSet.java | 29 +-- frysk-sys/lib/dwfl/ElfPrXFPRegSet.java | 29 +-- frysk-sys/lib/dwfl/ElfPrpsinfo.java | 36 +--- frysk-sys/lib/dwfl/ElfPrstatus.java | 31 +--- frysk-sys/lib/dwfl/TestElf.java | 216 ++++++++++---------- frysk-sys/lib/dwfl/cni/Elf.cxx | 101 +++++----- 42 files changed, 577 insertions(+), 650 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog index a35ab8d..ddf28e2 100644 --- a/frysk-core/frysk/bindir/ChangeLog +++ b/frysk-core/frysk/bindir/ChangeLog @@ -1,3 +1,7 @@ +2008-02-19 Andrew Cagney + + * TestFstep.java: Update to match lib.dwfl.Elf. + 2008-02-19 Phil Muldoon * fcore.xml: Add -stack option. diff --git a/frysk-core/frysk/bindir/TestFstep.java b/frysk-core/frysk/bindir/TestFstep.java index 6247067..6e6227a 100644 --- a/frysk-core/frysk/bindir/TestFstep.java +++ b/frysk-core/frysk/bindir/TestFstep.java @@ -41,17 +41,21 @@ package frysk.bindir; import frysk.Config; -import lib.dwfl.*; +import java.io.File; import frysk.expunit.Regex; import frysk.testbed.TestLib; import frysk.testbed.TearDownExpect; +import lib.dwfl.Elf; +import lib.dwfl.ElfEHeader; +import lib.dwfl.ElfCommand; public class TestFstep extends TestLib { - // Makes sure that fstep at least comes across the entry point of the - // stepped program. - public void testFirstStep() throws Exception - { - Elf e = new Elf("/bin/true", ElfCommand.ELF_C_READ); + /** + * Makes sure that fstep at least comes across the entry point of + * the stepped program. + */ + public void testFirstStep() throws Exception { + Elf e = new Elf(new File("/bin/true"), ElfCommand.ELF_C_READ); try { ElfEHeader h = e.getEHeader(); final String entryAddress = "0x" + Long.toHexString(h.entry); diff --git a/frysk-core/frysk/debuginfo/ChangeLog b/frysk-core/frysk/debuginfo/ChangeLog index f55fd9c..758d8a7 100644 --- a/frysk-core/frysk/debuginfo/ChangeLog +++ b/frysk-core/frysk/debuginfo/ChangeLog @@ -1,3 +1,7 @@ +2008-02-19 Andrew Cagney + + * DebugInfo.java: Update to match lib.dwfl.Elf. + 2008-02-12 Andrew Cagney * TestDebugInfoStackTrace.java: Update to match frysk.sys.Pid. diff --git a/frysk-core/frysk/debuginfo/DebugInfo.java b/frysk-core/frysk/debuginfo/DebugInfo.java index 12e817c..3f1a92f 100644 --- a/frysk-core/frysk/debuginfo/DebugInfo.java +++ b/frysk-core/frysk/debuginfo/DebugInfo.java @@ -54,6 +54,7 @@ import lib.dwfl.DwAt; import lib.dwfl.DwflDieBias; import lib.dwfl.Elf; import lib.dwfl.ElfCommand; +import java.io.File; public class DebugInfo { private Elf elf; @@ -66,7 +67,7 @@ public class DebugInfo { public DebugInfo (DebugInfoFrame frame) { Proc proc = frame.getTask().getProc(); try { - elf = new Elf(proc.getExe(), ElfCommand.ELF_C_READ); + elf = new Elf(new File(proc.getExe()), ElfCommand.ELF_C_READ); dwarf = new Dwarf(elf, DwarfCommand.READ, null); } catch (lib.dwfl.ElfException ignore) { diff --git a/frysk-core/frysk/dom/ChangeLog b/frysk-core/frysk/dom/ChangeLog index bebfb75..a92d1d8 100644 --- a/frysk-core/frysk/dom/ChangeLog +++ b/frysk-core/frysk/dom/ChangeLog @@ -1,3 +1,7 @@ +2008-02-19 Andrew Cagney + + * DOMCommon.java: Update to match lib.dwfl.File. + 2007-12-13 Sami Wagiaalla Moved frysk.rt.Line to frysk.scopes.SourceLocation. diff --git a/frysk-core/frysk/dom/DOMCommon.java b/frysk-core/frysk/dom/DOMCommon.java index 0afba02..8f2f67e 100644 --- a/frysk-core/frysk/dom/DOMCommon.java +++ b/frysk-core/frysk/dom/DOMCommon.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// 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 @@ -82,7 +82,7 @@ public class DOMCommon { ArrayList sourcefiles = new ArrayList(); if (pathFound(executable)) { try { - Elf elf = new Elf(executable, ElfCommand.ELF_C_READ); + Elf elf = new Elf(new File(executable), ElfCommand.ELF_C_READ); Dwarf dw = new Dwarf(elf, DwarfCommand.READ, null); String[] files = dw.getSourceFiles(); @@ -127,7 +127,7 @@ public class DOMCommon { Elf elf = null; ArrayList incpaths = new ArrayList(); try { - elf = new Elf(executable, ElfCommand.ELF_C_READ); + elf = new Elf(new File(executable), ElfCommand.ELF_C_READ); } catch (lib.dwfl.ElfException ee) { throw new RuntimeException("Cannot open elf file. Name I was given " + "was " + executable, ee); diff --git a/frysk-core/frysk/ftrace/ChangeLog b/frysk-core/frysk/ftrace/ChangeLog index d2f58c2..e3c6c0d 100644 --- a/frysk-core/frysk/ftrace/ChangeLog +++ b/frysk-core/frysk/ftrace/ChangeLog @@ -1,3 +1,9 @@ +2008-02-19 Andrew Cagney + + * TestMappingGuard.java (performTestAllLibraiesGetDetected()): + Make private. + * ObjectFile.java: Update to match lib.dwfl.Elf. + 2008-02-14 Andrew Cagney * Ftrace.java (addTracePid(ProcId)): Delete. diff --git a/frysk-core/frysk/ftrace/ObjectFile.java b/frysk-core/frysk/ftrace/ObjectFile.java index 3b4016b..1da5df4 100644 --- a/frysk-core/frysk/ftrace/ObjectFile.java +++ b/frysk-core/frysk/ftrace/ObjectFile.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2007, Red Hat Inc. +// 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 @@ -60,7 +60,8 @@ import lib.dwfl.ElfSymbol; import lib.dwfl.ElfSymbolBinding; import lib.dwfl.ElfSymbolType; import lib.dwfl.ElfSymbolVisibility; - +import lib.dwfl.ElfFileException; +import lib.dwfl.ElfException; import lib.stdcpp.Demangler; /** @@ -209,9 +210,7 @@ public class ObjectFile tracePoints.add(tp); } - public synchronized ArrayList getTracePoints(TracePointOrigin origin) - throws lib.dwfl.ElfException - { + public synchronized ArrayList getTracePoints(TracePointOrigin origin) { ArrayList tracePoints = (ArrayList)this.tracePointMap.get(origin); if (tracePoints != null) { logger.log(Level.FINE, "" + tracePoints.size() + " tracepoints for origin " + origin + " retrieved from cache."); @@ -308,9 +307,7 @@ public class ObjectFile } private ObjFBuilder builder; - protected ObjectFile(File file, final Elf elfFile, ElfEHeader eh) - throws lib.dwfl.ElfException - { + protected ObjectFile(File file, final Elf elfFile, ElfEHeader eh) { this.filename = file; this.entryPoint = eh.entry; this.builder = new ObjFBuilder(); @@ -344,7 +341,7 @@ public class ObjectFile if (!haveLoadable) { logger.log(Level.FINE, "Failed, didn't find any loadable segments."); - throw new lib.dwfl.ElfFileException("Failed, didn't find any loadable segments."); + throw new ElfFileException(file, "Failed, didn't find any loadable segments."); } if (eh.type == ElfEHeader.PHEADER_ET_EXEC) @@ -353,7 +350,7 @@ public class ObjectFile logger.log(Level.FINER, "This file is DSO or PIE EXECUTABLE."); else { logger.log(Level.FINE, "Failed, unsupported ELF file type."); - throw new lib.dwfl.ElfFileException("Failed, unsupported ELF file type."); + throw new ElfFileException(file, "Failed, unsupported ELF file type."); } boolean foundDynamic = false; @@ -438,7 +435,7 @@ public class ObjectFile } else if (sheader.type == ElfSectionHeader.ELF_SHT_SYMTAB) { if (this.staticSymtab != null) - throw new lib.dwfl.ElfFileException("Strange: More than one static symbol tables."); + throw new ElfFileException(file, "Strange: More than one static symbol tables."); logger.log(Level.FINER, "Found static symtab section `" + sheader.name + "'."); this.staticSymtab = section; } @@ -447,23 +444,23 @@ public class ObjectFile if (builder.haveDynamic) { // Elf consistency sanity checks. if (!foundDynamic) - throw new lib.dwfl.ElfFileException("DYNAMIC section not found in ELF file."); + throw new ElfFileException(file, "DYNAMIC section not found in ELF file."); if (!havePlt) - throw new lib.dwfl.ElfFileException("No (suitable) .plt found in ELF file."); + throw new ElfFileException(file, "No (suitable) .plt found in ELF file."); if (!haveRelPlt) - throw new lib.dwfl.ElfFileException("No (suitable) .rel.plt found in ELF file."); + throw new ElfFileException(file, "No (suitable) .rel.plt found in ELF file."); if (this.dynamicSymtab == null) - throw new lib.dwfl.ElfFileException("Couldn't get SYMTAB from DYNAMIC section."); + throw new ElfFileException(file, "Couldn't get SYMTAB from DYNAMIC section."); if (this.dynamicStrtab == null) - throw new lib.dwfl.ElfFileException("Couldn't get STRTAB from DYNAMIC section."); + throw new ElfFileException(file, "Couldn't get STRTAB from DYNAMIC section."); if ((this.dynamicVerneed != null || this.dynamicVerdef != null) && this.dynamicVersym == null) - throw new lib.dwfl.ElfFileException("Versym section missing when verdef or verneed present."); + throw new ElfFileException(file, "Versym section missing when verdef or verneed present."); if (this.dynamicVerneed == null && this.dynamicVerdef == null && this.dynamicVersym != null) - throw new lib.dwfl.ElfFileException("Versym section present when neither verdef nor verneed present."); + throw new ElfFileException(file, "Versym section present when neither verdef nor verneed present."); if (this.dynamicVerdefCount != 0 && this.dynamicVerdef == null) - throw new lib.dwfl.ElfFileException("Strange: VERDEFNUM tag present, but not VERDEF."); + throw new ElfFileException(file, "Strange: VERDEFNUM tag present, but not VERDEF."); if (this.dynamicVerneedCount != 0 && this.dynamicVerneed == null) - throw new lib.dwfl.ElfFileException("Strange: VERNEEDNUM tag present, but not VERNEED."); + throw new ElfFileException(file, "Strange: VERNEEDNUM tag present, but not VERNEED."); } // Read SONAME, if there was one. @@ -483,9 +480,7 @@ public class ObjectFile logger.log(Level.FINE, "Loading finished successfully."); } - public void eachTracePoint(TracePointIterator client, TracePointOrigin origin) - throws lib.dwfl.ElfException - { + public void eachTracePoint(TracePointIterator client, TracePointOrigin origin) { logger.log(Level.FINE, "Loading tracepoints for origin " + origin + "."); List tracePoints = builder.getTracePoints(origin); @@ -500,9 +495,7 @@ public class ObjectFile logger.log(Level.FINE, "Done processing tracepoints for origin " + origin + "."); } - public TracePoint lookupTracePoint(String name, TracePointOrigin origin) - throws lib.dwfl.ElfException - { + public TracePoint lookupTracePoint(String name, TracePointOrigin origin) { logger.log(Level.FINE, "Looking up tracepoint for `" + name + "' in " + origin + "."); List tracePoints = builder.getTracePoints(origin); for (Iterator it = tracePoints.iterator(); it.hasNext();) { @@ -513,9 +506,7 @@ public class ObjectFile return null; } - public void eachTracePoint(TracePointIterator client) - throws lib.dwfl.ElfException - { + public void eachTracePoint(TracePointIterator client) { logger.log(Level.FINE, "Load ALL tracepoints."); eachTracePoint(client, TracePointOrigin.PLT); eachTracePoint(client, TracePointOrigin.DYNAMIC); @@ -608,28 +599,26 @@ public class ObjectFile return objFile; } + Elf elfFile; try { - Elf elfFile = new Elf(filename, ElfCommand.ELF_C_READ); - ElfEHeader eh = elfFile.getEHeader(); - if (eh == null) { - logger.log(Level.FINE, "Failed, couldn't get an ELF header."); - return null; - } - - objFile = new ObjectFile(filename, elfFile, eh); - cachedFiles.put(filename, objFile); - logger.log(Level.FINE, "Done."); - return objFile; - } - catch (lib.dwfl.ElfFileException efe) { - efe.printStackTrace(); - System.err.println("load error: " + efe); - } - catch (lib.dwfl.ElfException eexp) { + elfFile = new Elf(filename, ElfCommand.ELF_C_READ); + } catch (ElfException eexp) { eexp.printStackTrace(); System.err.println("load error: " + eexp); + return null; } - return null; + ElfEHeader eh; + try { + eh = elfFile.getEHeader(); + } catch (ElfException e) { + logger.log(Level.FINE, "Failed, couldn't get an ELF header."); + return null; + } + + objFile = new ObjectFile(filename, elfFile, eh); + cachedFiles.put(filename, objFile); + logger.log(Level.FINE, "Done."); + return objFile; } } diff --git a/frysk-core/frysk/ftrace/TestMappingGuard.java b/frysk-core/frysk/ftrace/TestMappingGuard.java index c31df51..7ee6193 100644 --- a/frysk-core/frysk/ftrace/TestMappingGuard.java +++ b/frysk-core/frysk/ftrace/TestMappingGuard.java @@ -76,8 +76,7 @@ public class TestMappingGuard public void addFailed (Object observable, Throwable w) {} } - public void performTestAllLibrariesGetDetected() - { + private void performTestAllLibrariesGetDetected() { class MyMappingObserver extends DummyMappingObserver { public ArrayList allLibraries = new ArrayList(); public Action updateMappedFile(frysk.proc.Task task, MemoryMapping mapping) { diff --git a/frysk-core/frysk/isa/ChangeLog b/frysk-core/frysk/isa/ChangeLog index 289d224..c4f315a 100644 --- a/frysk-core/frysk/isa/ChangeLog +++ b/frysk-core/frysk/isa/ChangeLog @@ -1,3 +1,7 @@ +2008-02-19 Andrew Cagney + + * ElfMap.java: Update to match lib.dwfl. + 2007-12-11 Andrew Cagney * TestRegisterMap.java: New file. diff --git a/frysk-core/frysk/isa/ElfMap.java b/frysk-core/frysk/isa/ElfMap.java index 3e6aedd..b42ca14 100644 --- a/frysk-core/frysk/isa/ElfMap.java +++ b/frysk-core/frysk/isa/ElfMap.java @@ -42,9 +42,6 @@ package frysk.isa; import lib.dwfl.ElfEMachine; import lib.dwfl.ElfEHeader; import java.io.File; -import java.io.IOException; -import lib.dwfl.ElfException; -import lib.dwfl.ElfFileException; import lib.dwfl.Elf; import lib.dwfl.ElfCommand; import java.util.Map; @@ -93,20 +90,11 @@ public final class ElfMap { public static ISA getISA(File exe) { Elf elfFile; - try { - elfFile = new Elf(exe.getCanonicalPath(), ElfCommand.ELF_C_READ); - } catch (IOException e) { - throw new RuntimeException("opening " + exe.getPath(), e); - } catch (ElfFileException e) { - throw new RuntimeException ("opening " + exe.getPath(), e); - } catch (ElfException e) { - throw new RuntimeException ("opening " + exe.getPath(), e); - } + elfFile = new Elf(exe, ElfCommand.ELF_C_READ); try { ElfEHeader header = elfFile.getEHeader(); return getISA(header); - } - finally { + } finally { elfFile.close(); } } diff --git a/frysk-core/frysk/isa/corefiles/ChangeLog b/frysk-core/frysk/isa/corefiles/ChangeLog index f7308cd..4bef327 100644 --- a/frysk-core/frysk/isa/corefiles/ChangeLog +++ b/frysk-core/frysk/isa/corefiles/ChangeLog @@ -1,9 +1,19 @@ -2008-02-19 Phil Muldoon +2008-02-19 Andrew Cagney * LinuxElfCorefile.java (buildMap): Add stackOnly logic test. (setStackOnly): New. +2008-02-19 Phil Muldoon + + * IA32LinuxElfCorefile.java: Update to match lib.dwfl. + * X8664LinuxElfCorefile.java: Ditto. + * PPC64LinuxElfCorefile.java: Ditto. + * PPC32LinuxElfCorefile.java: Ditto. + * LinuxElfCorefile.java: Ditto. + (getElfEndianType()): Delete. + (getElfWordSize()): Delete. + 2008-02-15 Phil Muldoon * PPC64LinuxElfCorefile.java (writeNotePrpsinfo): Fix diff --git a/frysk-core/frysk/isa/corefiles/IA32LinuxElfCorefile.java b/frysk-core/frysk/isa/corefiles/IA32LinuxElfCorefile.java index 3c48481..56d0b77 100644 --- a/frysk-core/frysk/isa/corefiles/IA32LinuxElfCorefile.java +++ b/frysk-core/frysk/isa/corefiles/IA32LinuxElfCorefile.java @@ -320,7 +320,7 @@ public class IA32LinuxElfCorefile extends LinuxElfCorefile { * @see frysk.util.LinuxElfCorefile#getElfMachineClass() */ protected byte getElfMachineClass() { - return ElfEHeader.PHEADER_ELFCLASS32; + return ElfEHeader.CLASS32; } } diff --git a/frysk-core/frysk/isa/corefiles/LinuxElfCorefile.java b/frysk-core/frysk/isa/corefiles/LinuxElfCorefile.java index 1bda4b3..c142874 100644 --- a/frysk-core/frysk/isa/corefiles/LinuxElfCorefile.java +++ b/frysk-core/frysk/isa/corefiles/LinuxElfCorefile.java @@ -40,7 +40,6 @@ package frysk.isa.corefiles; import frysk.sys.ProcessIdentifierFactory; -import inua.eio.ByteOrder; import frysk.isa.ISA; import java.util.ArrayList; import java.util.List; @@ -49,8 +48,6 @@ import lib.dwfl.DwflModule; import lib.dwfl.Elf; import lib.dwfl.ElfCommand; import lib.dwfl.ElfEHeader; -import lib.dwfl.ElfException; -import lib.dwfl.ElfFileException; import lib.dwfl.ElfNhdr; import lib.dwfl.ElfPHeader; import frysk.dwfl.DwflCache; @@ -59,6 +56,7 @@ import frysk.proc.Proc; import frysk.proc.Task; import frysk.sys.StatelessFile; import frysk.sys.proc.MapsBuilder; +import java.io.File; public abstract class LinuxElfCorefile { @@ -180,10 +178,7 @@ public abstract class LinuxElfCorefile { builder.construct(ProcessIdentifierFactory.create(this.process.getMainTask().getTid())); // Write elf file - final long i = linuxElfCorefileImage.update(ElfCommand.ELF_C_WRITE); - if (i < 0) - throw new RuntimeException("LibElf elf_update failed with " - + linuxElfCorefileImage.getLastErrorMsg()); + linuxElfCorefileImage.update(ElfCommand.ELF_C_WRITE); // Go home. linuxElfCorefileImage.close(); @@ -236,31 +231,6 @@ public abstract class LinuxElfCorefile { StatelessFile rawCore = new StatelessFile(name); rawCore.pwrite(offset, data, 0, data.length); } - /** - * Return the endian type as associated by this ISA - * - * @return byte - endian type. - */ - protected byte getElfEndianType() { - ISA currentArch = process.getMainTask().getISA(); - ByteOrder order = currentArch.order(); - if (order == ByteOrder.BIG_ENDIAN) - return ElfEHeader.PHEADER_ELFDATA2MSB; - else - return ElfEHeader.PHEADER_ELFDATA2LSB; - } - - /** - * - * Return the word size as represented by this ISA - * - * @return int - size of word - * - */ - protected int getElfWordSize() { - ISA currentArch = process.getMainTask().getISA(); - return currentArch.wordSize(); - } /** * writeNotePrpsInfo @@ -451,37 +421,33 @@ public abstract class LinuxElfCorefile { * @return int size of the elf header */ protected int populateElfHeader(Elf elfCore) { + ISA isa = process.getMainTask().getISA(); - elfCore.createNewEHeader(getElfWordSize()); - ElfEHeader elf_header = elfCore.getEHeader(); - - elf_header.ident[4] = getElfMachineClass(); - elf_header.ident[5] = getElfEndianType(); hooks/post-receive -- frysk system monitor/debugger