public inbox for frysk-cvs@sourceware.org
help / color / mirror / Atom feed
* [SCM]  master: elfutils based disassembler
@ 2008-05-15 15:30 moore
  0 siblings, 0 replies; only message in thread
From: moore @ 2008-05-15 15:30 UTC (permalink / raw)
  To: frysk-cvs

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


^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2008-05-15 15:30 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2008-05-15 15:30 [SCM] master: elfutils based disassembler moore

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).