public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
From: moore@sourceware.org
To: frysk-cvs@sourceware.org
Subject: [SCM]  master: elfutils based disassembler
Date: Thu, 15 May 2008 15:30:00 -0000	[thread overview]
Message-ID: <20080515153053.18052.qmail@sourceware.org> (raw)

The branch, master has been updated
       via  68ecf35fae470a998e8d519094ab623822547b18 (commit)
      from  68a03f3103ec5a4532507d0a49ae3595151f01bd (commit)

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

- Log -----------------------------------------------------------------
commit 68ecf35fae470a998e8d519094ab623822547b18
Author: Tim Moore <moore@colt.bricoworks.com>
Date:   Thu May 15 17:14:47 2008 +0200

    elfutils based disassembler
    
    frysk-common/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* Makefile.rules (AM_CXXFLAGS): Add elfutils/{libasm,libebl}.
    
    frysk-core/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* Makefile.am (GEN_GCJ_LDADD_LIST ADD):  Add elfutils/libasm/libasm.a.
    
    frysk-core/frysk/bindir/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* fstep.java (DummyDisassembler, startTracingTask): Use new
    	disassembler from lib.dwfl.
    
    frysk-core/frysk/hpd/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* DisassembleCommand.java (Options): New options class. Remove
    	options variables from the DisassembleCommand object.
    	(DisassembleCommand constructor): Change options parsers to use
    	Options object.
    	(reset): Delete.
    	(interpret): Use Options object and lib.dwfl.Disassembler.
    	(printInstructions): Use Options object.
    
    frysk-core/frysk/pkglibdir/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* funit-scopes-multi-file-b.c: Initialize a  pointer to function
    	first to avoid warnings.
    
    frysk-gtk/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* Makefile.am (GEN_GCJ_LDADD_LIST): Add elfutils/libasm/libasm.a.
    
    frysk-gui/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* Makefile.am (GEN_GCJ_LDADD_LIST): Add elfutils/libasm/libasm.a.
    
    frysk-gui/frysk/gui/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* disassembler/DisassemblyWindow.java (setTask, resetTask): Use
    	lib.dwfl.Disassembler.
    	* memory/MemoryWindow.java (setTask, resetTask, refreshList):
    	Ditto.
    
    frysk-gui/frysk/gui/srcwin/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* SourceBuffer.java (disassemblerFrame): Use lib.dwfl.Disassembler.
    
    frysk-imports/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* Makefile.am (GEN_GCJ_LDADD_LIST): Added elfutils/libasm/libasm.a.
    
    frysk-imports/tests/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* Makefile.am (frysk4796_dwfltest_LDADD): Add elfutils/libasm/libasm.a.
    
    frysk-sys/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* Makefile.am (GEN_GCJ_LDADD_LIST): Add elfutils/libasm/libasm.a.
    
    frysk-sys/lib/dwfl/ChangeLog:
    2008-05-15  Tim Moore  <timoore@redhat.com>
    
    	* Disassembler.java: New file.
    	* cni/Disassembler.cxx: New file.
    	* Instruction.java: New file.

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

Summary of changes:
 frysk-common/ChangeLog                             |    4 +
 frysk-common/Makefile.rules                        |    2 +
 frysk-core/ChangeLog                               |    4 +
 frysk-core/Makefile.am                             |    3 +-
 frysk-core/frysk/bindir/ChangeLog                  |    5 +
 frysk-core/frysk/bindir/fstep.java                 |   26 ++--
 frysk-core/frysk/hpd/ChangeLog                     |   10 ++
 frysk-core/frysk/hpd/DisassembleCommand.java       |   74 +++++-----
 frysk-core/frysk/pkglibdir/ChangeLog               |    5 +
 .../frysk/pkglibdir/funit-scopes-multi-file-b.c    |    2 +
 frysk-gtk/ChangeLog                                |    4 +
 frysk-gtk/Makefile.am                              |    1 +
 frysk-gui/ChangeLog                                |    4 +
 frysk-gui/Makefile.am                              |    1 +
 frysk-gui/frysk/gui/ChangeLog                      |    7 +
 .../frysk/gui/disassembler/DisassemblyWindow.java  |   11 +-
 frysk-gui/frysk/gui/memory/MemoryWindow.java       |   15 +-
 frysk-gui/frysk/gui/srcwin/ChangeLog               |    4 +
 frysk-gui/frysk/gui/srcwin/SourceBuffer.java       |    8 +-
 frysk-imports/ChangeLog                            |    4 +
 frysk-imports/Makefile.am                          |    1 +
 frysk-imports/tests/ChangeLog                      |    4 +
 frysk-imports/tests/Makefile.am                    |    3 +-
 frysk-sys/ChangeLog                                |    4 +
 frysk-sys/Makefile.am                              |    1 +
 frysk-sys/lib/dwfl/ChangeLog                       |    6 +
 frysk-sys/lib/dwfl/Disassembler.java               |   78 ++++++++++
 frysk-sys/lib/dwfl/Instruction.java                |   54 +++++++
 frysk-sys/lib/dwfl/cni/Disassembler.cxx            |  157 ++++++++++++++++++++
 29 files changed, 439 insertions(+), 63 deletions(-)
 create mode 100644 frysk-sys/lib/dwfl/Disassembler.java
 create mode 100644 frysk-sys/lib/dwfl/Instruction.java
 create mode 100644 frysk-sys/lib/dwfl/cni/Disassembler.cxx

First 500 lines of diff:
diff --git a/frysk-common/ChangeLog b/frysk-common/ChangeLog
index 0064a02..c04030d 100644
--- a/frysk-common/ChangeLog
+++ b/frysk-common/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-15  Tim Moore  <timoore@redhat.com>
+
+	* Makefile.rules (AM_CXXFLAGS): Add elfutils/{libasm,libebl}.
+
 2008-05-14  Andrew Cagney  <cagney@redhat.com>
 
 	* Makefile.gen.sh: Match jnixx/*.cxx.
diff --git a/frysk-common/Makefile.rules b/frysk-common/Makefile.rules
index c273f77..c15e028 100644
--- a/frysk-common/Makefile.rules
+++ b/frysk-common/Makefile.rules
@@ -163,6 +163,8 @@ AM_CXXFLAGS = \
 	-I$(srcdir) \
 	-I$(srcdir)/../frysk-imports/include \
 	-I$(top_builddir) \
+        -I$(srcdir)/../frysk-imports/elfutils/libasm \
+        -I$(srcdir)/../frysk-imports/elfutils/libebl \
 	-I$(srcdir)/../frysk-imports/elfutils/libelf \
 	-I$(srcdir)/../frysk-imports/elfutils/libdw \
 	-I$(srcdir)/../frysk-imports/elfutils/libdwfl \
diff --git a/frysk-core/ChangeLog b/frysk-core/ChangeLog
index 9e44b4a..9636242 100644
--- a/frysk-core/ChangeLog
+++ b/frysk-core/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-15  Tim Moore  <timoore@redhat.com>
+
+	* Makefile.am (GEN_GCJ_LDADD_LIST ADD):  Add elfutils/libasm/libasm.a.
+
 2008-05-09  Sami Wagiaalla  <swagiaal@toner.yyz.redhat.com>
 
 	* Makefile.am: Corred rule for compiling 
diff --git a/frysk-core/Makefile.am b/frysk-core/Makefile.am
index 6c41855..1dca20c 100644
--- a/frysk-core/Makefile.am
+++ b/frysk-core/Makefile.am
@@ -52,7 +52,8 @@ GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-jline.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-antlr.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-junit.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-getopt.a
-GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-jdom.a 
+GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-jdom.a
+GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libasm/libasm.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libdwfl/libdwfl.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libdw/libdw.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libebl/libebl.a
diff --git a/frysk-core/frysk/bindir/ChangeLog b/frysk-core/frysk/bindir/ChangeLog
index 0c1c86b..fe9a144 100644
--- a/frysk-core/frysk/bindir/ChangeLog
+++ b/frysk-core/frysk/bindir/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-15  Tim Moore  <timoore@redhat.com>
+
+	* fstep.java (DummyDisassembler, startTracingTask): Use new
+	disassembler from lib.dwfl.
+
 2008-05-14  Petr Machata  <pmachata@redhat.com>
 
 	* ftrace.java: Support address tracing.
diff --git a/frysk-core/frysk/bindir/fstep.java b/frysk-core/frysk/bindir/fstep.java
index d509347..a32fbca 100644
--- a/frysk-core/frysk/bindir/fstep.java
+++ b/frysk-core/frysk/bindir/fstep.java
@@ -46,7 +46,9 @@ import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
 
-import lib.opcodes.Disassembler;
+import lib.dwfl.Disassembler;
+import lib.dwfl.Dwfl;
+import frysk.dwfl.DwflCache;
 import frysk.isa.signals.Signal;
 import frysk.proc.Action;
 import frysk.proc.Auxv;
@@ -167,12 +169,11 @@ public class fstep implements ProcRunObserver,
    */
   static class DummyDisassembler extends Disassembler
   {
-    private final ByteBuffer memory;
-    DummyDisassembler(ByteBuffer memory)
-    {
-      super(memory);
-      this.memory = memory;
-    }
+      private final ByteBuffer memory;
+      DummyDisassembler(Dwfl dwfl, ByteBuffer memory) {
+          super(dwfl, memory);
+          this.memory = memory;
+      }
 
     public List disassembleInstructions(long address, long count)
     {
@@ -223,10 +224,13 @@ public class fstep implements ProcRunObserver,
 	  // We only need one disassembler since all Tasks share their memory.
 	  if (disassembler == null)
 	  {
-	      if (Disassembler.available())
-		  disassembler = new Disassembler(task.getMemory());
-	      else
-		  disassembler = new DummyDisassembler(task.getMemory());
+              Dwfl dwfl = DwflCache.getDwfl(task);
+              try {
+                  disassembler = new Disassembler(dwfl, task.getMemory());
+              }
+              catch (RuntimeException ex) {
+                  disassembler = new DummyDisassembler(dwfl, task.getMemory());
+              }
 	  }
 	    task.requestAddInstructionObserver(this);
 	    task.requestAddTerminatedObserver(this);
diff --git a/frysk-core/frysk/hpd/ChangeLog b/frysk-core/frysk/hpd/ChangeLog
index 907551e..f97cb00 100644
--- a/frysk-core/frysk/hpd/ChangeLog
+++ b/frysk-core/frysk/hpd/ChangeLog
@@ -1,3 +1,13 @@
+2008-05-15  Tim Moore  <timoore@redhat.com>
+
+	* DisassembleCommand.java (Options): New options class. Remove
+	options variables from the DisassembleCommand object.
+	(DisassembleCommand constructor): Change options parsers to use
+	Options object.
+	(reset): Delete.
+	(interpret): Use Options object and lib.dwfl.Disassembler.
+	(printInstructions): Use Options object.
+
 2008-05-13  Teresa Thomas  <tthomas@redhat.com>
 
 	* WatchCommand.java (WatchpointObserver.addFailed): 
diff --git a/frysk-core/frysk/hpd/DisassembleCommand.java b/frysk-core/frysk/hpd/DisassembleCommand.java
index 19f19e0..bc64c8f 100644
--- a/frysk-core/frysk/hpd/DisassembleCommand.java
+++ b/frysk-core/frysk/hpd/DisassembleCommand.java
@@ -42,14 +42,25 @@ package frysk.hpd;
 import java.util.Iterator;
 import java.util.List;
 import frysk.debuginfo.DebugInfoFrame;
+import frysk.dwfl.DwflCache;
 import frysk.proc.Task;
 import frysk.symtab.Symbol;
 import frysk.symtab.SymbolFactory;
-import lib.opcodes.Disassembler;
-import lib.opcodes.Instruction;
+import lib.dwfl.Disassembler;
+import lib.dwfl.Instruction;
 
 public class DisassembleCommand extends ParameterizedCommand {
 
+    static private class Options {
+        boolean allInstructions = true;
+        boolean full = false;
+        boolean symbol = true;
+    }
+
+    Object options() {
+        return new Options();
+    }
+    
     public DisassembleCommand() {
 	super("disassemble a section of memory",
 	      "disassemble  [startAddress] [--] [OPTIONS]||\n"
@@ -62,38 +73,26 @@ public class DisassembleCommand extends ParameterizedCommand {
 		"only print the instruction portion not the parameters",
 		"<Yes|no>") {
 		void parse(String argument, Object options) {
-		    allInstructions = parseBoolean(argument);
+		    ((Options)options).allInstructions = parseBoolean(argument);
 		}
 	    });
 	add(new CommandOption("full-function", 'f',
 			      "disassemble the entire function",
 			      "<yes/No>") {
 		void parse(String argument, Object options) {
-		    full = parseBoolean(argument);
+		    ((Options)options).full = parseBoolean(argument);
 		}
 	    });
 	add(new CommandOption("symbol", 's', "print the symbol name",
 			      "<Yes|no>") {
 		void parse(String argument, Object options) {
-		    symbol = parseBoolean(argument);
+		    ((Options)options).symbol = parseBoolean(argument);
 		}
 	    });
     }
 
-    private boolean allInstructions = true;
-
-    private boolean full = false;
-
-    private boolean symbol = true;
-
-    private void reset() {
-	allInstructions = true;
-	full = false;
-	symbol = true;
-    }
-
-    void interpret(CLI cli, Input cmd, Object options) {
-	reset();
+    void interpret(CLI cli, Input cmd, Object opts) {
+        Options options = (Options)opts;
 	PTSet ptset = cli.getCommandPTSet(cmd);
 	Iterator taskDataIter = ptset.getTaskData();
 	if (cmd.size() > 2)
@@ -110,7 +109,8 @@ public class DisassembleCommand extends ParameterizedCommand {
 	    long currentInstruction = frame.getAddress();
 	    Symbol symbol = frame.getSymbol();
 
-	    Disassembler disassembler = new Disassembler(task.getMemory());
+	    Disassembler disassembler
+                = new Disassembler(DwflCache.getDwfl(task), task.getMemory());
 	    cli.outWriter.println("[" + data.getParentID() + "." + data.getID()
 		    + "]");
 	    if (cmd.size() == 1) {
@@ -143,8 +143,9 @@ public class DisassembleCommand extends ParameterizedCommand {
 			+ Long.toHexString(endInstruction) + ":");
 		List instructions = disassembler
 			.disassembleInstructionsStartEnd(startInstruction,
-				endInstruction);
-		printInstructions(cli, task, -1, instructions, true);
+                                                         endInstruction);
+                options.full = true;
+		printInstructions(cli, task, -1, instructions, options);
 		continue;
 	    }
 	    cli.outWriter.println("Dump of assembler code for function: "
@@ -153,14 +154,18 @@ public class DisassembleCommand extends ParameterizedCommand {
 	    // XXX: Need a better way of handling symbol size = 0
 	    long padding = 100;
 	    if (symbol.getSize() == 0) {
-		instructions = disassembler.disassembleInstructionsStartEnd(
-			symbol.getAddress(), (currentInstruction + padding));
+		instructions = disassembler
+                    .disassembleInstructionsStartEnd(symbol.getAddress(),
+                                                     (currentInstruction
+                                                      + padding));
 	    } else {
-		instructions = disassembler.disassembleInstructionsStartEnd(
-			symbol.getAddress(), (symbol.getAddress() + symbol
-				.getSize()));
+		instructions = disassembler
+                    .disassembleInstructionsStartEnd(symbol.getAddress(),
+                                                     (symbol.getAddress()
+                                                      + symbol.getSize()));
 	    }
-	    printInstructions(cli, task, currentInstruction, instructions, full);
+	    printInstructions(cli, task, currentInstruction, instructions,
+                              options);
 	}
     }
 
@@ -171,22 +176,21 @@ public class DisassembleCommand extends ParameterizedCommand {
          * @param instructions
          */
     private void printInstructions(CLI cli, Task task, long currentAddress,
-				   List instructions, boolean full) {
-
+				   List instructions, Options options) {
 	InstructionPrinter printer;
 	printer = new AddressPrinter();
 
-	if (symbol)
+	if (options.symbol)
 	    printer = new SymbolPrinter(task, printer);
 
-	if (allInstructions)
+	if (options.allInstructions)
 	    printer = new InstructionParamsPrinter(printer);
 	else
 	    printer = new InstructionOnlyPrinter(printer);
 	int wrapLines = 10;
 
 	HardList cache = null;
-	if (!full)
+	if (!options.full)
 	    cache = new HardList(wrapLines * 2);
 
 	Iterator iter = instructions.iterator();
@@ -198,12 +202,12 @@ public class DisassembleCommand extends ParameterizedCommand {
 	    else
 		printInstruction(cli, currentAddress, instruction, printer);
 
-	    if (instruction.address == currentAddress && !full) {
+	    if (instruction.address == currentAddress && !options.full) {
 		break;
 	    }
 	}
 
-	if (full) {
+	if (options.full) {
 	    cli.outWriter.println("End of assembly dump");
 	    return;
 	}
diff --git a/frysk-core/frysk/pkglibdir/ChangeLog b/frysk-core/frysk/pkglibdir/ChangeLog
index efeb6d5..2092dc9 100644
--- a/frysk-core/frysk/pkglibdir/ChangeLog
+++ b/frysk-core/frysk/pkglibdir/ChangeLog
@@ -1,3 +1,8 @@
+2008-05-15  Tim Moore  <timoore@redhat.com>
+
+	* funit-scopes-multi-file-b.c: Initialize a  pointer to function
+	first to avoid warnings.
+
 2008-05-14  Sami Wagiaalla  <swagiaal@toner.yyz.redhat.com>
 
 	* funit-scopes-multi-file-a.c: Moved function first().
diff --git a/frysk-core/frysk/pkglibdir/funit-scopes-multi-file-b.c b/frysk-core/frysk/pkglibdir/funit-scopes-multi-file-b.c
index ba1756e..87326a8 100644
--- a/frysk-core/frysk/pkglibdir/funit-scopes-multi-file-b.c
+++ b/frysk-core/frysk/pkglibdir/funit-scopes-multi-file-b.c
@@ -10,4 +10,6 @@ static void first(){// *this* one should be found
   first();
 }
 
+// Avoid a warning about first not being  used.
+void (*foo)() = first;
 
diff --git a/frysk-gtk/ChangeLog b/frysk-gtk/ChangeLog
index aaee04d..50871b5 100644
--- a/frysk-gtk/ChangeLog
+++ b/frysk-gtk/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-15  Tim Moore  <timoore@redhat.com>
+
+	* Makefile.am (GEN_GCJ_LDADD_LIST): Add elfutils/libasm/libasm.a.
+
 2008-04-11  Andrew Cagney  <cagney@redhat.com>
 
 	* .gitignore: Ignore files.base.
diff --git a/frysk-gtk/Makefile.am b/frysk-gtk/Makefile.am
index 305a1d7..6e913c4 100644
--- a/frysk-gtk/Makefile.am
+++ b/frysk-gtk/Makefile.am
@@ -51,6 +51,7 @@ GEN_GCJ_LDADD_LIST += ../frysk-sys/libfrysk-sys.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-junit.a 
 GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-getopt.a
 GEN_GCJ_LDADD_LIST += $(FRYSK_GTK_LIBS)
+GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libasm/libasm.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libdwfl/libdwfl.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libdw/libdw.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libebl/libebl.a
diff --git a/frysk-gui/ChangeLog b/frysk-gui/ChangeLog
index 9e1f4e9..7ddfccd 100644
--- a/frysk-gui/ChangeLog
+++ b/frysk-gui/ChangeLog
@@ -1,3 +1,7 @@
+2008-05-15  Tim Moore  <timoore@redhat.com>
+
+	* Makefile.am (GEN_GCJ_LDADD_LIST): Add elfutils/libasm/libasm.a.
+
 2008-05-02  Rick Moseley  <rmoseley@redhat.com>
 
 	* Makefile.am: Remove CDTParser.
diff --git a/frysk-gui/Makefile.am b/frysk-gui/Makefile.am
index 555da28..63b4d88 100644
--- a/frysk-gui/Makefile.am
+++ b/frysk-gui/Makefile.am
@@ -60,6 +60,7 @@ GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-jdom.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-junit.a 
 GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-getopt.a 
 GEN_GCJ_LDADD_LIST += ../frysk-imports/libfrysk-jline.a 
+GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libasm/libasm.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libdwfl/libdwfl.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libdw/libdw.a
 GEN_GCJ_LDADD_LIST += ../frysk-imports/elfutils/libebl/libebl.a
diff --git a/frysk-gui/frysk/gui/ChangeLog b/frysk-gui/frysk/gui/ChangeLog
index 5a855e9..c21e768 100644
--- a/frysk-gui/frysk/gui/ChangeLog
+++ b/frysk-gui/frysk/gui/ChangeLog
@@ -1,3 +1,10 @@
+2008-05-15  Tim Moore  <timoore@redhat.com>
+
+	* disassembler/DisassemblyWindow.java (setTask, resetTask): Use
+	lib.dwfl.Disassembler.
+	* memory/MemoryWindow.java (setTask, resetTask, refreshList):
+	Ditto.
+
 2008-04-17  Andrew Cagney  <cagney@redhat.com>
 
 	* disassembler/DisassemblyWindowFactory.java: Use
diff --git a/frysk-gui/frysk/gui/disassembler/DisassemblyWindow.java b/frysk-gui/frysk/gui/disassembler/DisassemblyWindow.java
index 7fae8f1..0f13e94 100644
--- a/frysk-gui/frysk/gui/disassembler/DisassemblyWindow.java
+++ b/frysk-gui/frysk/gui/disassembler/DisassemblyWindow.java
@@ -76,6 +76,7 @@ import org.gnu.gtk.event.LifeCycleListener;
 import org.gnu.gtk.event.SpinEvent;
 import org.gnu.gtk.event.SpinListener;
 
+import frysk.dwfl.DwflCache;
 import frysk.gui.common.IconManager;
 import frysk.gui.dialogs.WarnDialog;
 import frysk.gui.prefs.PreferenceManager;
@@ -90,8 +91,8 @@ import frysk.proc.MemoryMap;
 import frysk.symtab.Symbol;
 import frysk.symtab.SymbolFactory;
 
-import lib.opcodes.Disassembler;
-import lib.opcodes.Instruction;
+import lib.dwfl.Disassembler;
+import lib.dwfl.Instruction;
 
 public class DisassemblyWindow
     extends Window
@@ -271,7 +272,7 @@ public class DisassemblyWindow
     long pc_inc;
     final double highestAddress = Math.pow(2.0, (double)(8 * myTask.getISA().wordSize())) - 1.0;
 
-    this.diss = new Disassembler(myTask.getMemory());
+    this.diss = new Disassembler(DwflCache.getDwfl(myTask), myTask.getMemory());
 
     pc_inc = myTask.getPC();
     this.pc = pc_inc;
@@ -300,7 +301,7 @@ public class DisassemblyWindow
     this.segmentCombo.setActive(segmentIndex + 1);
     this.segmentCombo.showAll();
     
-    this.diss = new Disassembler(myTask.getMemory());
+    this.diss = new Disassembler(DwflCache.getDwfl(myTask), myTask.getMemory());
     this.fromSpin.setRange(0.0, highestAddress);
     this.fromSpin.setValue((double) pc_inc);
     this.fromBox.setText("0x" + Long.toHexString(pc_inc));
@@ -570,7 +571,7 @@ public class DisassemblyWindow
     long pc_inc;
     double highestAddress = Math.pow(2.0, (double)(8 * myTask.getISA().wordSize())) - 1.0;
 
-    this.diss = new Disassembler(myTask.getMemory());
+    this.diss = new Disassembler(DwflCache.getDwfl(myTask), myTask.getMemory());
     pc_inc = myTask.getPC();
     this.pc = pc_inc;
     // long end = pc_inc + 20;
diff --git a/frysk-gui/frysk/gui/memory/MemoryWindow.java b/frysk-gui/frysk/gui/memory/MemoryWindow.java
index 5c3d19a..4f40806 100644
--- a/frysk-gui/frysk/gui/memory/MemoryWindow.java
+++ b/frysk-gui/frysk/gui/memory/MemoryWindow.java
@@ -82,6 +82,7 @@ import org.gnu.gtk.event.SpinListener;
 import org.gnu.gtk.event.ContainerListener;
 import org.gnu.gtk.event.ContainerEvent;
 
+import frysk.dwfl.DwflCache;
 import frysk.gui.common.IconManager;
 import frysk.gui.dialogs.WarnDialog;
 import frysk.gui.prefs.PreferenceManager;
@@ -95,8 +96,8 @@ import frysk.stepping.TaskStepEngine;
 import frysk.symtab.SymbolFactory;
 import frysk.proc.MemoryMap;
 
-import lib.opcodes.Disassembler;
-import lib.opcodes.Instruction;
+import lib.dwfl.Disassembler;
+import lib.dwfl.Instruction;
 
 public class MemoryWindow
     extends Window
@@ -286,7 +287,7 @@ public class MemoryWindow
     
     this.mmaps = this.myTask.getProc().getMaps();
     
-    this.diss = new Disassembler(myTask.getMemory());
+    this.diss = new Disassembler(DwflCache.getDwfl(myTask), myTask.getMemory());
     pc_inc = myTask.getPC();
     this.setTitle(this.getTitle() + " - " + this.myTask.getProc().getCommand()
                   + " " + this.myTask.getName());
@@ -316,7 +317,7 @@ public class MemoryWindow
 	
 
     this.segmentCombo.showAll();
-    this.diss = new Disassembler(myTask.getMemory());
+    this.diss = new Disassembler(DwflCache.getDwfl(myTask), myTask.getMemory());
     this.fromSpin.setRange(0.0, highestAddress);
     this.fromSpin.setValue((double) pc_inc);
     this.fromBox.setText("0x" + Long.toHexString(pc_inc));
@@ -554,7 +555,7 @@ public class MemoryWindow
     long pc_inc;
     double highestAddress = Math.pow(2.0, (double)(8 * myTask.getISA().wordSize())) - 1.0;
     
-    this.diss = new Disassembler(myTask.getMemory());
+    this.diss = new Disassembler(DwflCache.getDwfl(myTask), myTask.getMemory());
 
     pc_inc = myTask.getPC();
 
@@ -624,8 +625,8 @@ public class MemoryWindow
 
     List instructionsList
 	= diss.disassembleInstructions((long) this.lastKnownFrom,
-				       (long) (this.lastKnownTo
-					       - this.lastKnownFrom + 1));
+                                       (int)(this.lastKnownTo
+                                             - this.lastKnownFrom + 1));
     Iterator li = instructionsList.listIterator(0);
     Instruction ins = (Instruction) li.next();
 
diff --git a/frysk-gui/frysk/gui/srcwin/ChangeLog b/frysk-gui/frysk/gui/srcwin/ChangeLog
index 81b6545..57fe952 100644
--- a/frysk-gui/frysk/gui/srcwin/ChangeLog
+++ b/frysk-gui/frysk/gui/srcwin/ChangeLog


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


                 reply	other threads:[~2008-05-15 15:30 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=20080515153053.18052.qmail@sourceware.org \
    --to=moore@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).