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