public inbox for frysk-cvs@sourceware.org help / color / mirror / Atom feed
From: cagney@sourceware.org To: frysk-cvs@sourceware.org Subject: [SCM] master: Move Task.getRawMemory() to LiveTask; make package-local. Date: Fri, 11 Jan 2008 21:36:00 -0000 [thread overview] Message-ID: <20080111213650.22818.qmail@sourceware.org> (raw) The branch, master has been updated via 39b06046cc2cac180bbec24e6a1d557f69b45cd6 (commit) from e42a7c12625dc81987dd20571e05080f118d25f1 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email. - Log ----------------------------------------------------------------- commit 39b06046cc2cac180bbec24e6a1d557f69b45cd6 Author: Andrew Cagney <cagney@toil.yyz.redhat.com> Date: Fri Jan 11 16:36:33 2008 -0500 Move Task.getRawMemory() to LiveTask; make package-local. frysk-core/frysk/proc/ChangeLog 2008-01-11 Andrew Cagney <cagney@redhat.com> * TestTaskObserverCode.java: Move to frysk.proc.live. * Task.java (getRawMemory()): Move to frysk.proc.live.LiveTask. frysk-core/frysk/proc/live/ChangeLog 2008-01-11 Andrew Cagney <cagney@redhat.com> * TestTaskObserverCode.java: Move from frysk.proc.TestTaskObserverCode. * LinuxPtraceTask.java (getRawMemory()): Make package-private. * LiveTask.java (getRawMemory()): Declare. * Breakpoint.java: Update. * Instruction.java: Update. ----------------------------------------------------------------------- Summary of changes: frysk-core/frysk/proc/ChangeLog | 3 + frysk-core/frysk/proc/Task.java | 13 --- frysk-core/frysk/proc/live/Breakpoint.java | 4 +- frysk-core/frysk/proc/live/ChangeLog | 7 ++ frysk-core/frysk/proc/live/Instruction.java | 2 +- frysk-core/frysk/proc/live/LinuxPtraceTask.java | 4 +- frysk-core/frysk/proc/live/LiveTask.java | 12 +++ .../proc/{ => live}/TestTaskObserverCode.java | 79 ++++++++++++------- 8 files changed, 76 insertions(+), 48 deletions(-) rename frysk-core/frysk/proc/{ => live}/TestTaskObserverCode.java (95%) First 500 lines of diff: diff --git a/frysk-core/frysk/proc/ChangeLog b/frysk-core/frysk/proc/ChangeLog index dc82336..0f5210d 100644 --- a/frysk-core/frysk/proc/ChangeLog +++ b/frysk-core/frysk/proc/ChangeLog @@ -1,5 +1,8 @@ 2008-01-11 Andrew Cagney <cagney@redhat.com> + * TestTaskObserverCode.java: Move to frysk.proc.live. + * Task.java (getRawMemory()): Move to frysk.proc.live.LiveTask. + * TaskObservation.java: Move to frysk.proc.live. * Task.java (handleAddObservation(TaskObserver)): Delete. (handleDeleteObservation(TaskObserver)): Delete. diff --git a/frysk-core/frysk/proc/Task.java b/frysk-core/frysk/proc/Task.java index a0edca5..014d6fb 100644 --- a/frysk-core/frysk/proc/Task.java +++ b/frysk-core/frysk/proc/Task.java @@ -298,19 +298,6 @@ public abstract class Task { } /** - * Returns the memory as seen by frysk-core. That includes things - * like inserted breakpoint instructions bytes which are filtered - * out by <code>getMemory()</code> (which is what you normally - * want unless you are interested in frysk-core specifics). <p> - * Default implementation calls <code>getMemory()</code>, need to - * be overriden by subclasses for which the raw memory view and - * the logical memory view are different. - */ - public ByteBuffer getRawMemory() { - return getMemory(); - } - - /** * Add TaskObserver.Code to the TaskObserver pool. */ public abstract void requestAddCodeObserver(TaskObserver.Code o, long a); diff --git a/frysk-core/frysk/proc/live/Breakpoint.java b/frysk-core/frysk/proc/live/Breakpoint.java index 579e7b0..0372b6d 100644 --- a/frysk-core/frysk/proc/live/Breakpoint.java +++ b/frysk-core/frysk/proc/live/Breakpoint.java @@ -146,7 +146,7 @@ public class Breakpoint implements Comparable */ private void set(Task task) { - ByteBuffer buffer = task.getRawMemory(); + ByteBuffer buffer = ((LinuxPtraceTask)task).getRawMemory(); Isa isa = ((LinuxPtraceTask)task).getIsaFIXME(); Instruction bpInstruction = isa.getBreakpointInstruction(); @@ -178,7 +178,7 @@ public class Breakpoint implements Comparable */ private void reset(Task task) { - ByteBuffer buffer = task.getRawMemory(); + ByteBuffer buffer = ((LinuxPtraceTask)task).getRawMemory(); buffer.position(address); Isa isa = ((LinuxPtraceTask)task).getIsaFIXME(); diff --git a/frysk-core/frysk/proc/live/ChangeLog b/frysk-core/frysk/proc/live/ChangeLog index a4d5ab7..ee234d3 100644 --- a/frysk-core/frysk/proc/live/ChangeLog +++ b/frysk-core/frysk/proc/live/ChangeLog @@ -1,5 +1,12 @@ 2008-01-11 Andrew Cagney <cagney@redhat.com> + * TestTaskObserverCode.java: Move from + frysk.proc.TestTaskObserverCode. + * LinuxPtraceTask.java (getRawMemory()): Make package-private. + * LiveTask.java (getRawMemory()): Declare. + * Breakpoint.java: Update. + * Instruction.java: Update. + * LiveTask.java (handleAddObservation(TaskObservation)) (handleDeleteObservation(TaskObservation)): Declare. * TaskObservation.java: Move from frysk.proc.TaskObservation. diff --git a/frysk-core/frysk/proc/live/Instruction.java b/frysk-core/frysk/proc/live/Instruction.java index b76760e..6a62978 100644 --- a/frysk-core/frysk/proc/live/Instruction.java +++ b/frysk-core/frysk/proc/live/Instruction.java @@ -141,7 +141,7 @@ public class Instruction */ public void setupExecuteOutOfLine(Task task, long pc, long address) { - ByteBuffer buffer = task.getRawMemory(); + ByteBuffer buffer = ((LinuxPtraceTask)task).getRawMemory(); buffer.position(address); buffer.put(instr); task.setPC(address); diff --git a/frysk-core/frysk/proc/live/LinuxPtraceTask.java b/frysk-core/frysk/proc/live/LinuxPtraceTask.java index a274b42..36ef26c 100644 --- a/frysk-core/frysk/proc/live/LinuxPtraceTask.java +++ b/frysk-core/frysk/proc/live/LinuxPtraceTask.java @@ -103,12 +103,10 @@ public class LinuxPtraceTask extends LiveTask { } } - /** * Return the raw memory byte-buffer. This is the TEXT/DATA area. */ - public ByteBuffer getRawMemory () - { + ByteBuffer getRawMemory() { logger.log(Level.FINE, "Begin fillMemory\n", this); ByteOrder byteOrder = getISA().order(); ByteBuffer memory = new AddressSpaceByteBuffer(getTid(), diff --git a/frysk-core/frysk/proc/live/LiveTask.java b/frysk-core/frysk/proc/live/LiveTask.java index 2fd28b4..692933c 100644 --- a/frysk-core/frysk/proc/live/LiveTask.java +++ b/frysk-core/frysk/proc/live/LiveTask.java @@ -39,6 +39,7 @@ package frysk.proc.live; +import inua.eio.ByteBuffer; import frysk.proc.Task; import frysk.proc.Proc; import frysk.proc.TaskId; @@ -69,4 +70,15 @@ abstract class LiveTask extends Task { * Process the add observation event. */ abstract void handleDeleteObservation(TaskObservation observation); + + /** + * Returns the memory as seen by frysk-core. That includes things + * like inserted breakpoint instructions bytes which are filtered + * out by <code>getMemory()</code> (which is what you normally + * want unless you are interested in frysk-core specifics). <p> + * Default implementation calls <code>getMemory()</code>, need to + * be overriden by subclasses for which the raw memory view and + * the logical memory view are different. + */ + abstract ByteBuffer getRawMemory(); } diff --git a/frysk-core/frysk/proc/TestTaskObserverCode.java b/frysk-core/frysk/proc/live/TestTaskObserverCode.java similarity index 95% rename from frysk-core/frysk/proc/TestTaskObserverCode.java rename to frysk-core/frysk/proc/live/TestTaskObserverCode.java index 490f381..6a456b0 100644 --- a/frysk-core/frysk/proc/TestTaskObserverCode.java +++ b/frysk-core/frysk/proc/live/TestTaskObserverCode.java @@ -1,6 +1,6 @@ // This file is part of the program FRYSK. // -// Copyright 2006, 2007 Red Hat Inc. +// Copyright 2006, 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 @@ -37,17 +37,38 @@ // version and license this file solely under the GPL without // exception. -package frysk.proc; - -import inua.eio.*; -import frysk.testbed.*; -import frysk.sys.*; -import frysk.dwfl.*; -import lib.dwfl.*; -import java.util.*; +package frysk.proc.live; +import lib.dwfl.DwarfCommand; +import lib.dwfl.ElfCommand; +import frysk.dwfl.DwflCache; import frysk.testbed.TestLib; import frysk.testbed.DaemonBlockedAtEntry; +import frysk.proc.Task; +import frysk.proc.Proc; +import frysk.sys.Signal; +import lib.dwfl.SymbolBuilder; +import lib.dwfl.Dwfl; +import lib.dwfl.DwflModule; +import lib.dwfl.DwarfDie; +import frysk.proc.TaskObserver; +import frysk.proc.Action; +import java.util.Map; +import java.util.HashMap; +import frysk.testbed.LegacyOffspring; +import inua.eio.ByteBuffer; +import frysk.proc.Manager; +import frysk.proc.MemoryMap; +import java.util.Collection; +import java.util.Arrays; +import java.util.Iterator; +import frysk.testbed.StopEventLoopWhenProcRemoved; +import lib.dwfl.ElfException; +import java.util.ArrayList; +import lib.dwfl.Elf; +import frysk.testbed.Offspring; +import frysk.sys.Errno; +import lib.dwfl.Dwarf; public class TestTaskObserverCode extends TestLib { @@ -470,7 +491,7 @@ public class TestTaskObserverCode extends TestLib assertRunUntilStop("adding AttachedObserver"); ByteBuffer memory = task.getMemory(); - ByteBuffer raw_memory = task.getRawMemory(); + ByteBuffer rawMemory = ((LiveTask)task).getRawMemory(); long address = getFunctionEntryAddress("bp1_func"); DwarfDie func1_die = getFunctionDie("bp1_func"); long func1_start = func1_die.getLowPC(); @@ -483,8 +504,8 @@ public class TestTaskObserverCode extends TestLib bp1_orig = memory.getByte(); byte bp1_orig_raw; - raw_memory.position(address); - bp1_orig_raw = raw_memory.getByte(); + rawMemory.position(address); + bp1_orig_raw = rawMemory.getByte(); assertEquals("orig and raw", bp1_orig, bp1_orig_raw); byte[] func1_orig = new byte[(int) (func1_end - func1_start)]; @@ -492,8 +513,8 @@ public class TestTaskObserverCode extends TestLib memory.get(func1_orig); byte[] func1_orig_raw = new byte[(int) (func1_end - func1_start)]; - raw_memory.position(func1_start); - raw_memory.get(func1_orig_raw); + rawMemory.position(func1_start); + rawMemory.get(func1_orig_raw); assertTrue("func_orig and func_raw", Arrays.equals(func1_orig, func1_orig_raw)); @@ -510,8 +531,8 @@ public class TestTaskObserverCode extends TestLib assertEquals("orig and insert", bp1_orig, bp1_insert); byte bp1_insert_raw; - raw_memory.position(address); - bp1_insert_raw = raw_memory.getByte(); + rawMemory.position(address); + bp1_insert_raw = rawMemory.getByte(); assertTrue("insert and raw", bp1_insert != bp1_insert_raw); byte[] func1_insert = new byte[(int) (func1_end - func1_start)]; @@ -521,8 +542,8 @@ public class TestTaskObserverCode extends TestLib Arrays.equals(func1_orig, func1_insert)); byte[] func1_insert_raw = new byte[(int) (func1_end - func1_start)]; - raw_memory.position(func1_start); - raw_memory.get(func1_insert_raw); + rawMemory.position(func1_start); + rawMemory.get(func1_insert_raw); assertFalse("func_insert and func_insert_raw", Arrays.equals(func1_insert, func1_insert_raw)); @@ -544,14 +565,14 @@ public class TestTaskObserverCode extends TestLib Arrays.equals(func1_orig, func1_new)); byte bp1_new_raw; - raw_memory.position(address); - bp1_new_raw = raw_memory.getByte(); + rawMemory.position(address); + bp1_new_raw = rawMemory.getByte(); assertEquals("new and raw", bp1_new, bp1_new_raw); byte[] func1_new_raw = new byte[(int) (func1_end - func1_start)]; - raw_memory.position(func1_start); - raw_memory.get(func1_new_raw); + rawMemory.position(func1_start); + rawMemory.get(func1_new_raw); assertTrue("func_new and func_new_raw", Arrays.equals(func1_new, func1_new_raw)); } @@ -571,7 +592,7 @@ public class TestTaskObserverCode extends TestLib assertRunUntilStop("adding AttachedObserver"); ByteBuffer memory = task.getMemory(); - ByteBuffer raw_memory = task.getRawMemory(); + ByteBuffer rawMemory = ((LiveTask)task).getRawMemory(); DwarfDie func1_die = getFunctionDie("bp1_func"); long func1_start = func1_die.getLowPC(); @@ -591,8 +612,8 @@ public class TestTaskObserverCode extends TestLib memory.position(map.addressLow); memory.get(mem_orig); - raw_memory.position(map.addressLow); - raw_memory.get(raw_orig); + rawMemory.position(map.addressLow); + rawMemory.get(raw_orig); assertTrue("mem_orig and raw_orig", Arrays.equals(mem_orig, raw_orig)); @@ -634,8 +655,8 @@ public class TestTaskObserverCode extends TestLib memory.position(map.addressLow); memory.get(bp_mem); - raw_memory.position(map.addressLow); - raw_memory.get(bp_raw); + rawMemory.position(map.addressLow); + rawMemory.get(bp_raw); assertTrue("mem_orig and bp_mem", Arrays.equals(mem_orig, bp_mem)); @@ -669,8 +690,8 @@ public class TestTaskObserverCode extends TestLib memory.position(map.addressLow); memory.get(bp_mem); - raw_memory.position(map.addressLow); - raw_memory.get(bp_raw); + rawMemory.position(map.addressLow); + rawMemory.get(bp_raw); assertTrue("deleted mem_orig and bp_mem", Arrays.equals(mem_orig, bp_mem)); hooks/post-receive -- frysk system monitor/debugger
reply other threads:[~2008-01-11 21:36 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=20080111213650.22818.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: linkBe 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).