From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 2311 invoked by alias); 12 Feb 2008 20:03:29 -0000 Received: (qmail 2280 invoked by uid 9514); 12 Feb 2008 20:03:25 -0000 Date: Tue, 12 Feb 2008 20:03:00 -0000 Message-ID: <20080212200324.2256.qmail@sourceware.org> From: pmuldoon@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Add frysk.rsl loggin. X-Git-Refname: refs/heads/master X-Git-Reftype: branch X-Git-Oldrev: 34a1f7390e8fbdac0f50d42b6ac21829be6ef993 X-Git-Newrev: 26e3bdf51680d9aea0dac71a9813543f3e1e1f49 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/msg00200.txt.bz2 The branch, master has been updated via 26e3bdf51680d9aea0dac71a9813543f3e1e1f49 (commit) from 34a1f7390e8fbdac0f50d42b6ac21829be6ef993 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 26e3bdf51680d9aea0dac71a9813543f3e1e1f49 Author: Phil Muldoon Date: Tue Feb 12 20:03:13 2008 +0000 Add frysk.rsl loggin. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/dead/CorefileByteBuffer.java | 29 ++++- frysk-core/frysk/proc/dead/LinuxCoreHost.java | 5 +- frysk-core/frysk/proc/dead/LinuxCoreProc.java | 120 ++++++++++++++++---- frysk-core/frysk/proc/dead/LinuxCoreTask.java | 4 + 4 files changed, 129 insertions(+), 29 deletions(-) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/dead/CorefileByteBuffer.java b/frysk-core/frysk/proc/dead/CorefileByteBuffer.java index 3ef2164..ca2fa92 100644 --- a/frysk-core/frysk/proc/dead/CorefileByteBuffer.java +++ b/frysk-core/frysk/proc/dead/CorefileByteBuffer.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 @@ -53,6 +53,7 @@ import lib.dwfl.ElfPHeader; import inua.eio.ByteBuffer; import inua.eio.ByteOrder; +import frysk.rsl.Log; public class CorefileByteBuffer extends ByteBuffer @@ -65,6 +66,8 @@ public class CorefileByteBuffer File exeFile = null; StatelessFile coreFileRaw = null; boolean fileOpen = false; + + private static final Log finest = Log.finest(CorefileByteBuffer.class); private CorefileByteBuffer(File file, long lowerExtreem, long upperExtreem, @@ -104,6 +107,8 @@ public class CorefileByteBuffer protected int peek(long address) { + + finest.log(this,"peek() address 0x" + Long.toHexString(address)); byte[] buffer = new byte[1]; MapAddressHeader metaLine = findMetaData(address); @@ -120,6 +125,10 @@ public class CorefileByteBuffer StatelessFile temp = new StatelessFile(new File(metaLine.name)); long offset = metaLine.solibOffset + (address - metaLine.vaddr); temp.pread(offset, buffer,0,1); + finest.log(this,"peek'ed() 0x"+Integer.toHexString(buffer[0] & 0xff) + + " from address 0x"+Long.toHexString(address) + + " offset 0x"+Long.toHexString(offset) + + " from file: " +metaLine.name); } } @@ -180,18 +189,28 @@ public class CorefileByteBuffer data = offsetList[i]; if ((address >= data.vaddr) && - (address <= (data.vaddr_end))) + (address <= (data.vaddr_end))) { + finest.log(this, "findMetaData() memory location 0x" + + Long.toHexString(address)+ " found at " + + "0x"+Long.toHexString(data.vaddr)+"-"+ + "0x"+Long.toHexString(data.vaddr_end)+ + " Name: "+data.name); + return data; + } } + finest.log(this, "findMetaData() cannot find metadata for addr 0x"+Long.toHexString(address)); return null; } private boolean checkCorefileAddress(MapAddressHeader data) { + boolean isCoreFile = false; if (data.fileSize > 0) - return true; - else - return false; + isCoreFile = true; + + finest.log(this,"checkCorefileAddress()= " + isCoreFile); + return isCoreFile; } diff --git a/frysk-core/frysk/proc/dead/LinuxCoreHost.java b/frysk-core/frysk/proc/dead/LinuxCoreHost.java index 926175a..3af1cc7 100644 --- a/frysk-core/frysk/proc/dead/LinuxCoreHost.java +++ b/frysk-core/frysk/proc/dead/LinuxCoreHost.java @@ -110,8 +110,9 @@ public class LinuxCoreHost extends DeadHost { if (exeSetToNull == false) if (exeFile.canRead() && exeFile.exists()) { try { - this.exeFile = exeFile.getCanonicalFile(); - } catch (IOException e) { + //this.exeFile = exeFile.getCanonicalFile(); + this.exeFile = exeFile; + } catch (Exception e) { status.hasExe = false; status.hasExeProblem = true; } diff --git a/frysk-core/frysk/proc/dead/LinuxCoreProc.java b/frysk-core/frysk/proc/dead/LinuxCoreProc.java index bfd753c..09f0b44 100644 --- a/frysk-core/frysk/proc/dead/LinuxCoreProc.java +++ b/frysk-core/frysk/proc/dead/LinuxCoreProc.java @@ -61,6 +61,7 @@ import frysk.proc.Auxv; import frysk.proc.MemoryMap; import frysk.isa.ISA; import frysk.isa.ElfMap; +import frysk.rsl.Log; public class LinuxCoreProc extends DeadProc { @@ -73,10 +74,13 @@ public class LinuxCoreProc extends DeadProc { // Segment and solib metadata private MapAddressHeader metaData[]; private boolean metaDataBuilt = false; + + private static final Log fine = Log.fine(LinuxCoreProc.class); public LinuxCoreProc(ElfData data, LinuxCoreHost host, ProcId procId ) { super(host, null, procId); + fine.log(this, "LinuxCoreProc(ElfData, LinuxCoreHost, ProcId)"); this.elfData = data; this.elfProc = ElfPrpsinfo.decode(elfData); this.corefileBackEnd = host.coreFile; @@ -93,28 +97,36 @@ public class LinuxCoreProc extends DeadProc { } public String getCommand() { + fine.log(this,"getCommand()", elfProc.getPrFname()); return elfProc.getPrFname(); } public String getExe() { - if (this.exefileBackEnd != null) + if (this.exefileBackEnd != null) { + fine.log(this,"getExe()", this.exefileBackEnd.getPath()); return this.exefileBackEnd.getPath(); + } // Only place to find full path + exe is // in the args list. Remove ./ if present. String[] args = getCmdLine(); if (args.length > 0) { if (args[0].startsWith("./")) args[0]=args[0].substring(2); + fine.log(this, "getExe()", args[0]); return args[0]; - } else + } else { + fine.log(this, "getExe()", elfProc.getPrFname()); return elfProc.getPrFname(); + } } public int getUID() { + fine.log(this,"getUID()", elfProc.getPrUid()); return (int) elfProc.getPrUid(); } public int getGID() { + fine.log(this,"getGID()", elfProc.getPrGid()); return (int) elfProc.getPrGid(); } @@ -124,6 +136,7 @@ public class LinuxCoreProc extends DeadProc { String rawArgs = elfProc.getPrPsargs(); String args[] = rawArgs.split(" "); + fine.log(this,"getCmdLine()", args); return args; } @@ -144,6 +157,7 @@ public class LinuxCoreProc extends DeadProc { throw new RuntimeException(e); } + fine.log(this,"getMemory() caller: ", fine.caller()); return memory; } @@ -216,28 +230,51 @@ public class LinuxCoreProc extends DeadProc { private MemoryMap[] memoryMaps; public MemoryMap[] getMaps () { + fine.log(this,"getMaps()"); if (memoryMaps == null) { + fine.log(this,"getMaps() - Maps need to be built"); ArrayList maps = new ArrayList (); // Build meta data if not already built. if (!metaDataBuilt) constructMetaData (); + // Refactor metadata into format expected by clients of // sendrecMaps. - for (int i=0; i