Skip to content


Subversion checkout URL

You can clone with
Download ZIP
Fetching contributors…
Cannot retrieve contributors at this time
1619 lines (1017 sloc) 53.1 KB
2003-01-19 Martin Baulig <>
Released version 0.2.0 "Boston" of the Mono Debugger :-)
2003-01-19 Martin Baulig <>
* README.FreBSD: The mono and binutils binaries are ready :-)
2003-01-19 Martin Baulig <>
* README.FreeBSD: Unfortunately, the binutils issue is a bit worse
than expected on FreeBSD. I've made a FreeBSD port, including a
binary package; added a link to them.
2003-01-19 Martin Baulig <>
* arch/DwarfReader.cs: Don't make this an IDisposable.
* classes/SymbolTableManager.cs: Catch the ThreadAbortException
and set the events to wake up a potentially waiting caller.
2003-01-18 Martin Baulig <>
* interfaces/IProcess.cs (State, Disassembler): New properties.
* backends/SingleSteppingEngine.cs: Implement IDisassembler.
* backends/Process.cs: Some API cleanups.
(ProcessExitedEvent): New public event.
2003-01-18 Martin Baulig <>
* Set version number to 0.1.9, we're almost ready for
the release ....
2003-01-18 Martin Baulig <>
* RELEASE-NOTES-0.2.0.txt: Replaced `GNU/Linux' with `Linux and
BSD kernels' since the debugger is now working on FreeBSD.
2003-01-17 Martin Baulig <>
* backends/DaemonThreadRunner.cs: Make the runner thread exit when
the target receives a SIGKILL.
2003-01-17 Martin Baulig <>
* classes/ObjectCache.cs: Catch and silently ignore exceptions
when creating the WeakReference. This makes the debugger work
with a runtime which has no GCHandle support.
2003-01-17 Martin Baulig <>
* Don't check for gthread anymore.
* backends/server/breakpoints.c: Don't use a GStaticRecMutex here;
mono_debugger_breakpoint_manager_new () now takes two delegate
arguments - a lock an an unlock function.
* classes/BreakpointManager.cs: Create a Mutex and pass the
unmanaged breakpoint manager to delegates to lock/unlock it.
2003-01-16 Martin Baulig <>
* backends/server/i386-freebsd-ptrace.c (do_wait): FreeBSD
requires the `WLINUXCLONE' option if and only if the target is a
* backends/server/i386-ptrace.c (InferiorHandle): Added
`is_thread' field; this is set to 1 by server_ptrace_attach()
since we currently only attach to threads.
2003-01-16 Martin Baulig <>
* Check whether we have a shared; if not,
tell people to read the "binutils and libbfd issues" section in
* README.FreeBSD: New file.
* doc/FAQ.txt: Also added this to the FAQ.
2003-01-16 Martin Baulig <>
* backends/ThreadManager.cs: Don't hardcode signal numbers.
* backends/ptrace/PTrace.cs
(ThreadAbortSignal, ThreadRestartSignal, ThreadDebugSignal,
MonoThreadDebugSignal): New static properties.
2003-01-16 Martin Baulig <>
* backends/ThreadManager.cs: Use the new thread manager in
mono/io-layer when debugging managed applications.
2003-01-15 Peter Williams <>
* frontends/scripting/Parser.jay: Change it so that expressions
go in parentheses, not variable_expressions.
* frontends/scripting/Command.cs: supporting changes of
VariableExpressionGroup -> ExpressionGroup.
2003-01-13 Peter Williams <>
* frontends/scripting/Command.cs: Implement a binary operator for
simple math in expressions. Make variable_expressions convertible
to expressions so that we don't need PrintCommand as well as
PrintVariableCommand. Change the default resolution of variables
to try and get their actual values. Make array index take an
expression so that we can do "$array[$i]".
* frontends/scripting/Parser.jay: Define binary operators and make
them possible expressions. Don't make processes possible expressions.
Remove the PrintVariable command since we don't need it anymore.
* frontends/scripting/Tokenizer.cs: Return the binary operator tokens
if necessary. Needs fixing to support negative numbers.
2003-01-14 Martin Baulig <>
* NEWS: The Debugger is now working on FreeBSD 4.7 :-)
2003-01-14 Martin Baulig <>
* backends/IInferior.cs (StopSignal): Removed.
* backends/ptrace/PTrace.cs (SIGSTOP, SIGINT, SIGCHLD, SIGPROF):
New static properties; initialize them in a static .ctor.
* backend/ThreadManager.cs (SignalHandler): Ignore SIGPROF as well.
2003-01-14 Martin Baulig <>
* arch/ArchitectureI386.cs: Keep the registers in sync with
DebuggerI386Registers in backends/server/i386-arch.h.
2003-01-14 Martin Baulig <>
* backends/server/i386-linux-ptrace.c: Moved the
architecture-specific stuff into i386-arch.[ch]; moved the
portable stuff into i386-ptrace.c, created i386-linux-ptrace.c and
2003-01-14 Martin Baulig <>
* (server_sources): AC_SUBST this to
i386-linux-ptrace.c on Linux and to nothing on other systems.
* backends/server/library.c: If we're on Linux, #include
"i386-linux-ptrace.c", otherwise don't read a backend at all.
2003-01-14 Martin Baulig <>
* arch/CoreFileElfI386.cs (get_registers): Read the registers from
the `.reg' section to make this more portable.
* arch/bfdglue.c (bfd_glue_core_file_elfi386_get_registers): Make
this work on FreeBSD 4.7.
2003-01-13 Martin Baulig <>
* glue/mono-debugger-readline.c: Don't use a GIOChannel here, just
read from stdin.
* classes/GnuReadline.cs: We don't need an IOChannel anymore.
2003-01-13 Martin Baulig <>
* (--disable-readline): New command line argument to
disable the use of GNU readline.
* glue/mono-debugger-readline.c: Don't use readline if we don't
have it. Only set the GIOChannel flags on startup.
2003-01-13 Martin Baulig <>
* glue/bfdglue.c (bfd_glue_core_file_elfi386_get_registers):
Changed the type of the `regs' argument to `gpointer *' to make it
* glue/bfdglue.h: Don't #include Linux-specific header files.
* Check whether we're actually on Linux.
(--disable-gui): New command argument to disable building the gui.
2003-01-13 Martin Baulig <>
* classes/StackFrame.cs (Name): New public property. Returns the
method name from ISymbolLookup.SimpleLookup().
* frontends/gui/BacktraceView.cs: Use the new StackFrame.Name
property to get the method name.
2003-01-13 Martin Baulig <>
* interfaces/ISymbolTable.cs (ISymbolLookup.SimpleLookup): New
interface method which returns just the name of the method without
constructing the method itself.
* arch/Bfd.cs: Read the bfd symbol table and make it available via
the ISymbolLookup's SimpleLookup() method.
2003-01-13 Martin Baulig <>
* interfaces/IDisassembler.cs (DisassembleInstruction): Removed
the version which took a `ref TargetAddress'; the other one now
returns an AssemblerLine or null on error, it doesn't throw an
exception any longer.
* classes/AssemblerMethod.cs (AssemblerLine): Made this a sealed
class, not a struct so we can pass this by reference and return null.
2003-01-13 Martin Baulig <>
* classes/AssemblerMethod.cs (AssemblerMethod.AppendOneLine): New
public method to append a line at the end of the current method.
* frontends/gui/DisassemblerView.cs: While we don't have a method,
add all instructions we encounter here.
2003-01-12 Martin Baulig <>
* classes/NativeMethod.cs: Renamed to AssemblerMethod.
* classes/AssemblerMethod.cs: New public class. This derives from
MethodSource, but we don't need an IMethod any longer. The API is
also a bit improved, you can for instance get an array of
AssemberLines to access individual lines.
* interfaces/IDisassembler.cs: Return an AssemblerMethod, not an
* frontends/gui/DisassemblerView.cs: If we don't have a method,
just display the current instruction.
2003-01-12 Martin Baulig <>
* widgets/sources/debuggerwidgets/: New directory.
* widgets/sources/debuggerwidgets/debuggerentry.[ch]: New widget.
This is derived from GtkEntry and has "previos_line" and
"next_line" signals which are emitted when the user presses the
Up/Down keys.
* frontends/gui/CurrentInstructionEntry.cs: Use the new
DebuggerEntry widget; if the user presses the Up/Down keys,
display the next/previous instruction.
2003-01-12 Martin Baulig <>
* frontends/gui/DebuggerGUI.cs: Make the "Program to Debug" menu
item work again.
* frontends/gui/ Removed the "File / Open" and
"Debug / Restart" menu items.
2003-01-12 Martin Baulig <>
* frontends/gui/DebuggerWidget.cs: Removed all the method stuff;
we only need it in the SourceManager.
* frontends/gui/RegisterDisplay.cs (Active): New public property.
This is set to true while the CPU view is being displayed.
2003-01-11 Martin Baulig <>
* classes/StackFrame.cs
(DisassembleInstruction, DisassembleMethod): New public methods.
* frontends/gui/DisassemblerView.cs: Use StackFrame.DisassembleMethod().
2003-01-11 Martin Baulig <>
* frontends/gui/SourceView.cs: Don't derive from DebuggerWidget;
moved most of the functionality from SourceList here.
* frontends/gui/SourceList.cs: Derive from SourceView.
* frontends/gui/DisassemblerView.cs: Derive from SourceView.
* frontends/gui/SourceManager.cs: Nicely integrate the DisassemblerView.
2003-01-11 Martin Baulig <>
* frontends/gui/SourceList.cs: Moved the SourceList class from
SourceManager.cs into its own file.
2003-01-11 Martin Baulig <>
* widgets/generator/gtk-api.xml: Removed
gtk_source_buffer_get_tag_start() and gtk_source_buffer_get_tag_end().
2003-01-11 Martin Baulig <>
* frontends/scripting/Parser.jay: Added `MODULE ALL module_operations'
to do the operation on all modules.
2003-01-11 Martin Baulig <>
* frontends/scripting/Parser.jay: Added `SHOW MODULES' command and
a `MODULE' command to modify modules.
2003-01-11 Martin Baulig <>
* backends/mono-csharp/MonoCSharpLanguageBackend.cs: Incremented
MonoSymbolFileTable.DynamicVersion to 20 for the next Mono release.
2003-01-10 Peter Williams <>
* lib/ (clean): Remove *.dll on make clean as well as *.exe.
Also add a rule to regenerate Makefile if changes.
2003-01-08 Peter Williams <>
* frontends/scripting/ Make the jay rule not clobber Parser.cs
if jay fails, and add a rule to regenerate Makefile if needed.
* backends/ProcessStart.cs: If no directory argument is given, assume
we're looking in the current directory.
2003-01-06 Martin Baulig <>
* Set version number to 0.1.7 (this is an odd number
which means that we're still unstable ...)
2003-01-06 Martin Baulig <>
* doc/debugger-status.txt: Added a "How you can help with the
debugger" section.
2003-01-06 Martin Baulig <>
* doc/debugger-status.txt: Added a few notes about the current
status here.
2003-01-06 Martin Baulig <>
* doc/debugger-status.txt: Updated this document.
* doc/roadmap.txt: This one was too much outdated. Removed.
* RELEASE-NOTES-0.2.0.txt: Started to document all the cool new
features here.
2003-01-06 Martin Baulig <>
* tests/TestManagedTypes.cmd: Added a few more test cases here.
2003-01-06 Martin Baulig <>
* frontends/scripting/: It's called `accessible', not `accessable'.
2003-01-05 Martin Baulig <>
* NEWS: Added a new item :-)
* RELEASE-NOTES-0.1.0.txt: Added a comment about this release
which never really happened.
2003-01-05 Martin Baulig <>
* test/ Added `test' target to run all the tests.
2003-01-05 Martin Baulig <>
* test/D.cs: Renamed to TestManagedTypes.cs.
2003-01-05 Martin Baulig <>
* lib/ Moved here from ../test.
* lib/ Moved here from ../test.
* lib/: New directory. Build everything here instead of in the
test/ directory.
* test/: This directory will now contain only tests.
2003-01-05 Martin Baulig <>
* backends/IInferior.cs (Run): Added `bool redirect_fds' argument;
if false, we don't redirect stdout and stderr. This is used in
the command line interpreter.
2003-01-04 Peter Williams <>
* (READLINE_DEPLIBS): Check to see if libreadline
needs -ltermcap and if so define it here.
* glue/ (libmonodebuggerreadline_la_LIBADD): Use
2003-01-05 Martin Baulig <>
* backends/ProcessStart.cs: The way how the debugger starts the
JIT has changed; make sure to update your JIT as well.
2003-01-04 Martin Baulig <>
* frontends/scripting/ScriptingContext.cs: Support non-interactive
debugging sessions; when reading commands from a file, we don't
print the current frame when we stop and all errors are always fatal.
2003-01-04 Martin Baulig <>
* frontends/scripting/Parser.jay: Added a couple of `assert'
commands to be used in a test suite.
2003-01-04 Martin Baulig <>
* interfaces/ITargetObject.cs (Kind): Moved to ITargetType.
* interfaces/ITargetType.cs (Kind): Moved this property here.
2003-01-04 Martin Baulig <>
* frontends/scripting/Parser.jay: Added "length ($a)",
"upper ($a)" and "lower ($a)" where $a is an array.
2003-01-04 Martin Baulig <>
* frontends/scripting/Parser.jay: Added the parent expression
"print parent ($foo)".
2003-01-04 Martin Baulig <>
* frontends/scripting/Parser.jay: Added the array access
expression "print $a [5]".
2003-01-04 Martin Baulig <>
* frontends/scripting/Parser.jay (variable_expression): Move the
`STAR variable_expression' rule above the struct element one.
Added grouping expression "print (*$c.Object).Foo".
2003-01-04 Martin Baulig <>
* frontends/scripting/Command.cs (VariableExpression): Added
`ResolveType' which returns an ITargetType (without accessing the
ITargetObject if possible).
* frontends/scripting/Parser.jay: The `show type' command now
accepts an arbitrary `variable_expression'.
2003-01-04 Martin Baulig <>
* interfaces/ITargetFundamentalObject.cs: New interface.
* interfaces/ITargetFundamentalType.cs: New interface.
* interfaces/TargetObjectKind.cs: New enum.
* interfaces/ITargetObject.cs (Kind): New property.
(HasObject, Object): Removed.
* interfaces/ITargetType.cs (HasObject): Removed.
* backends/mono-csharp/MonoFundamentalObjectBase.cs: New abstract
base class for ITargetFundamentalObject.
2003-01-04 Martin Baulig <>
* frontends/scripting/Command.cs (VariableExpression): Added
`ResolveVariable' method which returns an ITargetObject.
* interfaces/ITargetPointerObject.cs
(HasDereferencedObject, DereferencedObject): New properties.
2003-01-04 Martin Baulig <>
* frontends/scripting/Parser.jay: Added the dereferencing
expression "print *$a" where $a is a pointer or a Mono `object'.
2003-01-04 Martin Baulig <>
* frontends/scripting/Command.cs: Renamed the old
VariableExpression to VariableReferenceExpression.
(VariableExpression): New abstract class.
* frontends/scripting/Parser.jay (variable_expression): This is
now always a VariableExpression. Added scripting variables; you
can now say "set !foo = $b.Test" and then later reference it with
"print !foo".
2003-01-04 Martin Baulig <>
* backends/IInferior.cs (Bfd): New public property.
* backends/Debugger.cs: Create a MonoCSharpLanguageBackend for
core files from managed applications; use a special construction
for it, it'll only read the symbol tables once on construction.
* backends/mono-csharp/MonoCSharpLanguageBackend.cs: Provide a
second .ctor which takes a CoreFile argument and immediately reads
the symbol tables.
2003-01-04 Martin Baulig <>
* Link against -liberty as well as -lbfd.
* classes/IOChannel.cs: Put this into the namespace Mono.Debugger.
* classes/Utils.cs: Duplicate the contents of GLib.FileUtils here;
this was the only method which we were using from glib-sharp in
the backend, so this dependency is now gone.
* test/ Don't link against glib-sharp.dll in the backend.
2003-01-04 Martin Baulig <>
* classes/Backtrace.cs: Don't make this abstract; move the stack
unwind stuff from the SingleSteppingEngine here.
2003-01-03 Martin Baulig <>
* interfaces/IProcess.cs: Don't implement ITargetNotification.
(IProcess.GetMemoryMaps): New method.
* backends/SingleSteppingEngine.cs: Implement ITargetAccess and
* backends/TargetMemoryArea.cs: Moved to ../classes.
* classes/TargetMemoryArea.cs: Moved here from ../backends; the
.ctor is now public.
2003-01-03 Martin Baulig <>
* backends/mono-csharp/MonoCSharpLanguageBackend.cs: Breakpoints
in not-yet-JITed methods are finally working again :-)
2003-01-02 Martin Baulig <>
* frontends/command-line/Main.cs: If the user gave any command
line arguments, immediately start the program.
* frontends/scripting/Parser.jay: The `start' command no longer
has any default arguments, so it doesn't accept an empty list anymore.
2003-01-02 Martin Baulig <>
* backends/Process.cs (Process.Inferior): Removed this property.
The IInferior is now a private interface and is not exposed to the
2003-01-02 Martin Baulig <>
* interfaces/ILanguageBackend.cs: Moved to ../backends.
* backends/ILanguageBackend.cs: This is now an internal interface.
(BreakpointHit, GetTrampoline): Take an IInferior, not an
IProcess argument.
* classes/Module.cs (Module.Language): The return type of this
property is now `object'.
* arch/BfdContainer.cs: Don't implement ILanguageBackend.
2003-01-02 Martin Baulig <>
* arch/CoreFile.cs: Don't implement IInferior, just IProcess and
2003-01-02 Martin Baulig <>
* classes/AddressDomain.cs: New global class.
* classes/TargetAddress.cs: Use an instance of the new
AddressDomain class as the domain instead of just an `object'.
The AddressDomain has a name and an unique ID which is now used in
all error messages - this helps you a lot if you're evey wondering
why a comparision fails with an ArgumentException.
2003-01-01 Martin Baulig <>
* interfaces/ITargetMemoryAccess.cs (ITargetMemoryInfo): New
interface; derives from ITargetInfo; added `AddressDomain' and
'GlobalAddressDomain' properties.
(ITargetMemoryAccess): Derive from ITargetMemoryInfo.
* arch/*.cs: Don't use the IInferior here.
2003-01-01 Martin Baulig <>
* interfaces/ITargetMemoryAccess.cs (ITargetAccess): New
interface; derives from ITargetMemoryAccess has has a function to
read a register.
* arch/ArchitectureI386.cs: The ctor now takes an ITargetAccess
and the global address domain; we don't use the IInferior here any
2003-01-01 Martin Baulig <>
* frontends/scripting/Parser.cs: Added `disassemble' and
`disassemble method' commands.
2003-01-01 Martin Baulig <>
Happy New Year 2003 :-)
* classes/Backtrace.cs: New public class; we're now using an
instance of this class instead of a `StackFrame[]' for a backtrace.
* classes/StackFrame.cs (Register): New public struct.
(StackFrame.Registers): New abstract property.
* backends/process.cs (Process.GetBacktrace): Return a Backtrace,
not a StackFrame[].
* arch/ArchitectureI386.cs (UnwindStack): New function to unwind
the stack to get the registers of another stack frame.
2002-12-31 Martin Baulig <>
This is the end of the Year 2002.
* frontends/scripting/Parser.jay: Implemented the `$a.Test'
expression to access a struct/class field.
2002-12-31 Martin Baulig <>
* classes/StackFrame.cs: Made this class abstract.
(Handle): Removed this property.
(LocalsAddress, ParamsAddress): New abstract properties.
(TargetMemoryAccess): New abstract property.
* classes/SingleSteppingEngine.cs: Explicitly implement
ITargetMemoryAccess; we're sending a sync_command for each
operation. This is used to read the target's memory.
2002-12-31 Martin Baulig <>
* frontends/scripting/Parser.jay: Added `print $name'.
2002-12-31 Martin Baulig <>
* frontends/scripting/Tokenizer.cs: Only recognize the short
keywords at the start of the line; `$' starts an identifier, so
don't recognize any keywords in it.
* frontends/scripting/Parser.jay: Added `show type $name' to show
the type of a variable/parameter.
2002-12-31 Martin Baulig <>
* backends/mono-csharp/MonoCSharpLanguageBackend.cs: The big type
table rewrite; the JIT now allocates types in continuous memory
areas rather than using an individually malloc()ed block for each
2002-12-30 Martin Baulig <>
* backends/mono-csharp/MonoCSharpLanguageBackend.cs: The big
rewrite; we're doing all the symbol table stuff in a background
thread when we get a notification from the JIT.
* backends/ThreadManager.cs: If we're debugging a managed
application, the JIT creates a special debugger thread for us;
create a DaemonThreadRunner for this thread.
2002-12-30 Martin Baulig <>
* arch/Bfd.cs: Use the ThreadManager as the TargetAddress domain
for all symbol table addresses; they must be shared between all
the threads.
* interfaces/ILanguageBackend.cs (GetTrampoline, BreakpointHit):
Added IProcess argument.
* interfaces/ITargetMemoryAccess.cs
(ITargetMemoryReader): Added `ReadGlobalAddress'; uses the
ThreadManager as the TargetAddress'es domain.
(ITargetMemoryAccess): Likewise.
2002-12-30 Martin Baulig <>
* backends/DaemonThreadRunner.cs: New public class.
* backends/ThreadManager.cs: Use the DaemonThreadRunner for the
pthread library's manager thread.
* interfaces/ITargetNotification.cs (TargetState): Added `DAEMON'
for undebuggable daemon threads.
2002-12-30 Martin Baulig <>
* backends/Debugger.cs: Only create the `csharp_language' if we're
actually debugging a managed application.
* backends/server/i386-linux-ptrace.c (server_ptrace_kill): Use
`kill (handle->pid, SIGKILL)', not `ptrace (PTRACE_KILL)' since
kill() works from any thread.
(server_ptrace_finalize): Detach from the target after killing it.
2002-12-29 Peter Williams <>
* frontends/gui/DebuggerGUI.cs (Main): Any argument after a
nonoption argument is not for us, so just add it to args.
(LoadProgram): Pass in our environment variables to the
child process.
2002-12-28 Martin Baulig <>
* frontends/scripting/Parser.jay: Transformed all the old
Expressions into Commands.
2002-12-27 Martin Baulig <>
* backends/server/breakpoints.h (BreakpointManager): Use a
GStaticRecMutex instead of a GMutex so we can call
mono_debugger_breakpoint_manager_lock/unlock recursively from the
same thread.
* backends/server/i386-linux-ptrace.c (server_ptrace_read_data):
Remove breakpoints from the returned memory area.
2002-12-26 Martin Baulig <>
* frontends/scripting/Parser.jay: The `break' command now takes
an opt_process argument.
2002-12-26 Martin Baulig <>
* backends/SingleSteppingEngine.cs: Correctly step over
breakpoints in the current thread.
* backends/IInferior.cs
(EnableAllBreakpoints, DisableAllBreakpoints): Removed.
2002-12-26 Martin Baulig <>
* inferfaces/IProcess.cs: New interface. This is implemented by
backends/Process.cs; it's some kind of a hack because Process.cs
is in the backends dir, but I need this in Module.cs.
* classes/ThreadGroup.cs: New public class. It is used to share
information about breakpoints and signal handlers between
different invocations of the same target.
* classes/Module.cs (AddBreakpoint): Added ThreadGroup argument.
(EnableBreakpoint, DisableBreakpoint): Likewise.
* backends/classes/NativeModule.cs
(EnableBreakpoint, DisableBreakpoint): Enable/disable the
breakpoint on all threads in the ThreadGroup.
* backends/SingleSteppingEngine.cs
(InsertBreakpoint, RemoveBreakpoint): Make this work again.
* frontends/scripting/Parser.jay: Added `break' command to insert
a breakpoint.
2002-12-25 Martin Baulig <>
* arch/Bfd.cs (Bfd.GetDisassembler): Take an IInferior argument
and actually pass that argument to the BfdDisassembler's ctor; we
cannot share a disassembler between multiple IInferior's.
2002-12-25 Martin Baulig <>
* backends/SingleSteppingEngine.cs: If we're stepping one instruction
and receive signal which we're supposed to ignore, the stepping operation
has already been completed and we don't need to resume the target.
2002-12-25 Martin Baulig <>
* frontends/gui/ProcessManager.cs: Added thread manager GUI.
2002-12-25 Martin Baulig <>
* classes/DebuggerTextWriter.cs: New abstract base class.
* frontends/scripting/ScriptingContext.cs: Use two
DebuggerTextWriter's for the debugger and inferior output.
* frontends/gui/OutputWindow.cs: Rewrote this to use the new
DebuggerTextWriter. We're now using a separate output window
for the inferior output and error output is displayed in red.
2002-12-25 Martin Baulig <>
* frontends/gui/DebuggerWidget.cs: Renamed SetBackend -> SetProcess;
the DebuggerBackend can already be set in the ctor, so this only
takes a Process argument.
2002-12-25 Martin Baulig <>
* classes/NativeMethod.cs: Create the ISourceBuffer in the ctor.
* frontends/gui/SourceView.cs: Make this work again.
2002-12-24 Martin Baulig <>
This is my last commit for today, so merry x-mas !
2002-12-24 Martin Baulig <>
The Monday Night Hack of week #52 - the BreakpointManager is done.
* backends/BreakpointManager.cs: New file. This is just a wrapper
around the unmanaged API in backends/server/breakpoints.[ch].
* backends/server/breakpoints.[ch]: New files.
* backends/server/i386-linux-ptrace.c: Use a breakpoint manager
which is shared between all threads of the same application.
* backends/ThreadManager.cs
(AcquireGlobalThreadLock, ReleaseGlobalThreadLock): Don't
lock/unlock the calling process.
* backends/SingleSteppingEngine.cs: Breakpoints are almost working
again; we can now safely hit a breakpoint in another thread
(except of a few race conditions which aren't fixed yet).
2002-12-23 Martin Baulig <>
* frontends/gui/SourceManager.cs (SourceManager): Added events
`MethodInvalidEvent', `MethodChangedEvent', `FrameChangedEvent'
and `FramesInvalidEvent'.
(SourceList): Connect these events on the SourceManager, not on
the Process since their handlers must be called from the gtk# thread.
* frontends/gui/DebuggerWidget.cs
(RealMethodChanged, RealMethodInvalid): New protected virtual
methods which may be called from any thread.
(MethodChanged, MethodInvalid): New protected virtual methods
which are guaranteed to be called from the gtk# thread.
2002-12-23 Martin Baulig <>
* frontends/gui/DebuggerWidget.cs
(RealFrameChanged, RealFramesInvalid, RealStateChanged): New
protected virtual methods which may be called from any thread.
(FrameChanged, FramesInvalid, StateChanged): New protected virtual
methods which are guaranteed to be called from the gtk# thread.
2002-12-23 Martin Baulig <>
* class/ThreadNotify.cs: This can now have multiple listeners
(since file descriptors are a precious resource).
2002-12-23 Martin Baulig <>
* frontends/gui/DebuggerWidget.cs: Added `DebuggerGUI' argument;
get the Glade.XML from an internal property of the gui.
* frontends/gui/SourceManager.cs: Derive from DebuggerWidget.
2002-12-15 Martin Baulig <>
* frontends/gui/RegisterDisplay.cs: Make this working again.
* frontends/gui/CurrentInstructionEntry.cs: Likewise.
2002-12-15 Martin Baulig <>
* frondends/command-line/Interpreter.cs: Use the new command line
interface here.
2002-12-15 Martin Baulig <>
* backends/ThreadManager.cs: Added a global thread lock mechanism.
2002-12-14 Martin Baulig <>
* backends/SingleSteppingEngine.cs: All step commands now take an
additional `bool synchronous' argument and return true on success;
if the `synchronous' argument is set, the engine waits until the
operation has been completed before returning.
2002-12-14 Martin Baulig <>
* backends/ThreadManager.cs: New file.
2002-12-13 Martin Baulig <>
* backends/server/i386-linux-ptrace.c: Added hardware breakpoints.
* backends/SingleSteppingEngine.cs: Use a hardware breakpoint for
the temporary breakpoints; this'll avoid some bigger headaches
with threads.
2002-12-13 Martin Baulig <>
WARNING: The Debugger is currently more or less broken since I
haven't finished all this stuff yet.
Rewrote and redesigned the SingleSteppingEngine to do all the
stepping in a background thread.
* backends/server/*, backends/ptrace/PTrace.cs: Simplified this
ugly async stuff; since we're now running in our own thread, we
can just wait for our child.
2002-12-13 Martin Baulig <>
* frontends/scripting/Parser.cs: Added `finish' command.
* frontends/command-line/Interpreter.cs: Commented out almost
everything in this file; it'll go away really soon.
* classes/ThreadNotify.cs: New class; this is basically the same
than Gtk.ThreadNotify, but we can't link against gtk in the
* classes/IOChannel.cs (IODataInputChannel, IODataOutputChannel):
Added these classes for data channels.
* backends/Process.cs, backends/Debugger.cs: Moved all
process-specific stuff to the new `Process' class.
* frontends/gui/DebuggerWidget.cs (DebuggerWidget.SetBackend):
Added `Process process' argument; use the Process everywhere
instead of the DebuggerBackend.
2002-12-11 Martin Baulig <>
* backends/server/i386-linux-ptrace.c: Get the registers each time
the target stops and store them.
2002-12-11 Martin Baulig <>
* backends/ProcessStart.cs: New class. Moved the argv and envp
stuff here; this class specifies how to launch an application.
2002-12-10 Martin Baulig <>
* backends/Debugger.cs (DebuggerBackend.Run): This method
now returns a new Process.
(DebuggerBackend.ReadCoreFile): Likewise.
* backends/Process.cs: Moved a few more things from Debugger.cs.
2002-12-10 Martin Baulig <>
Started to split DebuggerBackend into DebuggerBackend and Process.
Later one, a DebuggerBackend will have a Process for each thread
of the application being debugged.
* backends/Process.cs: New public class.
2002-12-10 Martin Baulig <>
* frontends/scripting/ScriptingContext.cs: Renamed `Process' to
`ProcessHandle' since I'm about to create backends/Process.cs.
2002-12-08 Martin Baulig <>
* class/ObjectCache.cs: Use one global cleanup thread rather than
one thread per object.
2002-12-08 Radek Doulik <>
* glue/mono-debugger-readline.h: include stdio.h - fixes
compilation on rh8, where readline .h file doesn't include it and
FILE is then there undefined
2002-12-01 Martin Baulig <>
* frontends/scripting/: Added new scripting interface.
2002-11-30 Martin Baulig <>
* glue/mono-debugger-readline.[ch]: New files.
* classes/GnuReadLine.cs: Added interface to GNU Readline.
2002-11-28 Martin Baulig <>
* frontends/command-line/Main.cs: Added new stand-alone command
line interpreter.
* frontends/command-line/Interpreter.cs: Improved this a bit.
2002-10-18 Martin Baulig <>
* RELEASE-NOTES-0.1.0.txt: Added preliminary release notes.
2002-10-17 Martin Baulig <>
* backends/SingleSteppingEngine.cs: Don't change the state to
running unless the stepping operation actually succeeded. Don't
allow any stepping operations while sending out the event.
2002-10-17 Martin Baulig <>
* interfaces/ITargetLocation.cs, class/TargetLocation.cs: Removed.
* backends/class/RelativeTargetLocation.cs: Removed.
* backends/class/TargetStackLocation.cs: Removed.
* interfaces/ITargetObject.cs (ITargetObject.Location): Removed
this property, not all variables have an address.
* backends/mono-csharp/MonoTargetLocation.cs: New class.
* backends/mono-csharp/MonoStackLocation.cs: New class.
* backends/mono-csharp/MonoRegisterLocation.cs: New class.
* backends/mono-csharp/MonoRelativeTargetLocation.cs: New class.
* backends/mono-csharp/: Use the new MonoTargetLocation code.
* classes/StackFrame.cs (StackFrame.Level): New property.
2002-10-17 Martin Baulig <>
* interface/ILanguage.cs: Removed.
2002-10-15 Miguel de Icaza <>
* frontends/gui/DebuggerGUI.cs: Check state of the backend before
issuing a command, as even if we grey menu items, events can be
Reactivate the sensitivity code.
Desensitize `Program to Debug' when running.
* frontends/gui/ProgramToDebug.cs: Display the current settings,
and allow the user to change those, instead of re-entering them.
2002-10-14 Martin Baulig <>
* We don't need to check for gdb anymore.
* test/ The configuration file is now
finally called `Debugger.exe.config'.
2002-10-13 Martin Baulig <>
* class/SourceInfo.cs: Only read the methods when they're needed.
2002-10-12 Martin Baulig <>
Implemented a SymbolTableManager which maintains all the symbol
tables and which uses a separate thread to update things in the
Since reading the source list is a very CPU consuming operation
and the source list is only needed when inserting a new breakpoint,
it is now also read in the background thread.
* class/SymbolTableManager.cs: This class now maintains all the
symbol tables. It's using a separate thread to update things in
the background.
* class/AsyncQueue.cs: New class.
* class/SymbolTableCollection.cs: Added Lock() and UnLock()
methods to avoid updates while adding several symbol tables.
* arch/DwarfReader.cs: This class is now thread-safe.
* interfaces/ILanguageBackend.cs (ILanguageBackend.SymbolTable):
Removed, the SymbolTableManager now holds all the symbol tables.
* backends/Debugger.cs: Use the SymbolTableManager.
2002-10-12 Martin Baulig <>
* class/Module.cs: Added property to get the ISymbolTable.
* backends/Debugger.cs: Do all the symbol table handling here
based on the module list. Modifying the Module.StepInto property
of shared libraries will now actually work.
* backends/BfdModule.cs: Only report the symbols being loaded if
we have a DwarfReader.
2002-10-11 Martin Baulig <>
* backends/server/i386-linux-ptrace.c: If the target received a
signal, remember it and pass it to the target the next time it is
resumed. Also added a function to modify/clear the signal.
* backends/Debugger.cs (DebuggerBackend.ClearSignal): New method
to clear the signal.
2002-10-11 Martin Baulig <>
* arch/CoreFile.cs (CoreFile.GetMemoryMaps): New method to get a
TargetMemoryArea[] for the core file's sections.
* frontends/gui/MemoryMapsDisplay.cs: Added memory map display.
2002-10-11 Martin Baulig <>
* backends/TargetMemoryArea.cs: New struct.
* backends/IInferior.cs (IInferior.GetMemoryMaps): New method to
get the memory maps as an array of TargetMemoryArea's.
* frontends/gui/HexEditor.cs: Use the memory maps to ensure that
we're only accessing mapped memory, allow editing of the memory.
You need a new Gtk# for this.
2002-10-11 Martin Baulig <>
* frontends/gui/HexEditor.cs: Added hex editor.
2002-10-11 Martin Baulig <>
* frontends/gui/ModuleDisplay.cs: Added module display.
2002-10-10 Martin Baulig <>
Improved core file support.
* backends/IInferior.cs (IInferior.UpdateModules): New method to
reload the modules.
* backends/Debugger.cs (Backend.CurrentFrame, Backend.CurrentMethod,
Backend.GetBacktrace): Don't use the SingleSteppingEngine if this
is a core file.
* arch/Bfd.cs: Improved support for core files and shared libraries.
2002-10-09 Miguel de Icaza <>
* frontends/gui/VariableDisplay.cs: Add a few GUI touchups to the
variable display.
2002-10-08 Martin Baulig <>
* backends/mono-csharp/MonoCSharpLanguageBackend.cs
(MonoCSharpLanguageBackend): Don't derive from SymbolTable but use
a separate symbol table. This allows us to release the symbol
table completely when the target exits.
* backends/Debugger.cs (InferiorStateNotify): Removed this event,
use the StateChanged event instead.
2002-10-05 Martin Baulig <>
* frontends/gui/: Display the SourceStatusbar while the source
code is visible and the TargetStatusbar while the CPU view is
2002-10-05 Martin Baulig <>
* frontends/gui/SourceView.cs: Made this class abstract.
* frontends/gui/SourceManager.cs: Use Gtk.SourceView.
2002-10-03 Miguel de Icaza <>
* frontends/gui/DebuggerGUI.cs: Hook up the signal and show an
error message.
2002-10-02 Miguel de Icaza <>
* frontends/gui/SourceManager.cs: Add code to switch to a newly
loaded file by default.
* frontends/gui/RegisterDisplay.cs: Allow values to be changed,
rewrite code to minimize duplicated code.
Turn off advanced mode, so segment registers are not shown
* backends/IInferior.cs: New property to tell if we can update the
registers or not.
* frontends/gui/Report.cs: New file, requires an updated Gtk#
* arch/ArchitectureI386.cs: Add TOP constant.
2002-10-02 Martin Baulig <>
* interfaces/ITargetNotification.cs
(ITargetNotification.DebuggerOutput): New event to emit diagnostic
messages and errors.
(ITargetNotification.DebuggerError): New event to emit non-fatal
* backends/Debugger.cs: Improved error handling a bit, we emit a
`DebuggerError' event if we could not load the symbol table
instead of throwing an exception.
2002-10-02 Martin Baulig <>
* backends/IInferior.cs (IInferior.SetRegister, SetRegisters):
New methods to set registers.
* backends/Debugger.cs (DebuggerBackend.SetRegister, SetRegisters):
New methods to set registers.
2002-10-02 Martin Baulig <>
* interfaces/ITargetStructType.cs (ITargetStructType.Methods):
New property to get the methods.
(ITargetMethodInfo): New interface to represent a method.
* interfaces/ITargetStructObject.cs (ITargetStructObject.PrintObject):
New method to call a method in the target to print the object.
2002-10-01 Miguel de Icaza <>
* frontends/command-line/Interpreter.cs: Update online help.
* frontends/gui/RegisterDisplay.cs: Love touch ups, it now works
as intended.
* backends/Debugger.cs: Add a new event to notify when the
inferior is set/reset.
* frontends/gui/RegisterDisplay.cs: Use a custom view for the x386
view of the register, so we can modify the flags at some point,
and also to encourage the creation of target-specific register
views that make sense for that particular target.
* frontends/gui/Utils.cs: Bug fix.
2002-10-01 Martin Baulig <>
* backends/mono-csharp/: Make "boxing" of non-valuetypes actually
work. Added exception support to the properties.
2002-10-01 Martin Baulig <>
Reworked the module stuff, implemented breakpoints and start to
add support for properties.
* interfaces/IModule.cs: Removed, has been replaced with class/Module.cs.
* class/Module.cs: New public class, replaces IModule. This class
maintains all the breakpoints.
* interfaces/ISymbolTable.cs (ISymbol): Removed this interface.
* class/SingleSteppingEngine.cs: Moved the single-stepping engine
into its own class. This is now also doing all the method lookups.
2002-09-27 Martin Baulig <>
* arch/BfdContainer.cs: New class to hold all Bfd instances of the
DebuggerBackend. It also maintains the module table and allows it
to be shared across different invocations of the target.
* interfaces/ISymbolTable.cs: Started to work on lookup-by-name.
(ISymbol): New interface.
(ISymbolLookup): Added `ISymbol Lookup (string name)'.
(ISymbolTable): Added HasSymbols and Symbols properties.
2002-09-27 Martin Baulig <>
* interfaces/IModule.cs (IModule.StepInto): New property to
specify whether to enter methods in this module while
* interfaces/IMethod.cs (IMethod.Language): Removed.
(IMethod.Module): Added.
* backends/ptrace/PTrace.cs (PTraceInferior.Step): Don't enter a
method if it's IModule.StepInto is false.
2002-09-27 Martin Baulig <>
* interfaces/IModule.cs: New interface.
* backends/Debugger.cs (DebuggerBackend.Modules): New property to get a
list of loaded modules.
(DebuggerBackend.ModulesChangedEvent): New event.
2002-09-27 Martin Baulig <>
* class/MethodBase.cs: Don't implement IMethodSource, added
protected SetSource() method to set the IMethodSource.
2002-09-27 Martin Baulig <>
* backends/*, arch/*: Removed the SourceFileFactory argument everywhere.
2002-09-27 Martin Baulig <>
* frontends/gui/SourceManager.cs: If ISourceBuffer.HasContents is false,
ISourceBuffer.Name is a filename which we need to load.
* backends/mono-csharp/CSharpMethod.cs: Don't lookup source files.
* arch/DwarfReader.cs: Likewise.
2002-09-27 Miguel de Icaza <>
* frontends/gui/SourceManager.cs: New file, it will hold the
source code manager, and currently also hosts the source listing
widget (it will replace the old code in the future, but I have
ketp it for compatibility reasons).
2002-09-27 Martin Baulig <>
* interfaces/IArchitecture.cs (IArchitecture.GetBreakpointTrampolineData):
New method to read the data from a JIT breakpoint trampoline.
* inferfaces/ILanguageBackends.cs (ILanguageBackend.BreakpointHit): New
method. The language backend may decide to continue the target if hit
a breakpoint.
* backends/ptrace/PTrace.cs (PTraceInferior.Continue): Don't check
the `until' address, this is now done in DebuggerBackend.
* backends/Debugger.cs (DebuggerBackend.Continue): Moved the check
* backends/Debugger.cs (DebuggerBackend.frame_changed): If we hit
a breakpoint and the language backend told us to continue, do so.
* backends/mono-csharp/MonoCSharpLanguageBackend.cs
(MonoCSharpLanguageBackend.BreakpointHit): If we're in the
breakpoint trampoline, get its data but ignore the breakpoint for
the moment.
* backends/server/i386-linux-ptrace.c (server_ptrace_child_stopped):
Send a `(MESSAGE_CHILD_HIT_BREAKPOINT, 0)' if we hit an unknown
breakpoint, ie. there was an `int 3' in the code which we did not insert.
2002-09-26 Martin Baulig <>
* classes/ILDisassembler.cs: Removed. We use the .il which has
been created by the JIT as source code.
2002-09-26 Martin Baulig <>
* backends/Debugger.cs (DebuggerBackend.LoadNativeSymbolTable): New public
property. Only load the native symbol table if this is set.
2002-09-26 Martin Baulig <>
* interfaces/ISourceBuffer.cs (ISourceBuffer.HasContents): New property.
* backends/Debugger.cs: Make the source factory optional and
create an ISourceBuffer without contents if we don't have it.
2002-09-23 Martin Baulig <>
* interfaces/ITargetArray.cs: New interface.
* interfaces/ITargetObject.cs: Replaced location with type, added HasObject
and Object.
* interfaces/ITargetType.cs (ITargetType.GetObject): Removed.
* backends/classes/RelativeTargetLocation.cs: New class.
* backends/mono-csharp/: Improved the type system; we're now supporting
strings and arrays.
2002-09-21 Martin Baulig <>
* README: Added information about the directory layout.
* NEWS: Started to maintain a NEWS file :-)
2002-09-21 Martin Baulig <>
* backends/classes/: New directory.
* backends/classes/TargetReader.cs: Moved here.
* backends/classes/TargetStackLocation.cs: Moved here.
2002-09-21 Martin Baulig <>
* backends/mono-csharp/MonoCSharpLanguageBackend.cs (SymbolTableException):
This exception already exists in class/SymbolTableException.cs.
2002-09-21 Martin Baulig <>
* backends/StepFrame.cs: Moved StepFrame here and made it `public sealed'.
* backends/IInferior.cs (IStepFrame): We don't need this interface.
2002-09-21 Martin Baulig <>
* backends/Debugger.cs (TargetAsyncResult): Make this a private nested class
inside PTraceInferior.
* backends/TargetReader.cs: Moved TargetInfo and TargetReader here.
* backends/ptrace/PTrace.cs: Renamed the class to PTraceInferior.
2002-09-21 Martin Baulig <>
* arch/Bfd.cs, BfdDisassembler.cs, DwarfReader.cs: Made these classes internal.
2002-09-21 Martin Baulig <>
* classes/StackFrame.cs: Moved here and made `public sealed'.
2002-09-21 Martin Baulig <>
* interfaces/ISourceLocation.cs: Removed.
* classes/SourceLocation.cs: This is the only implementation.
2002-09-21 Martin Baulig <>
* interfaces/IBreakPoint.cs: Killed.
2002-09-21 Martin Baulig <>
* interfaces/ISourceFile.cs: Removed.
* classes/SourceFileFactory.cs: This is the only implementation.
2002-09-21 Martin Baulig <>
* interfaces/ISymbolTable.cs (ISymbolTableCollection): Removed this interface.
* classes/SymbolTableCollection.cs: This is the only implementation.
2002-09-21 Martin Baulig <>
* interfaces/IDebuggerBackend.cs: Removed.
* interfaces/IStackFrame.cs: Removed.
* interfaces/IInferior.cs: Moved to ../backends/.
* classes/IOChannel.cs: Moved here from ../backends/ptrace/ and made public.
* classes/Variable.cs: Removed.
* backends/StackFrame.cs: Moved the StackFrame class here and made it public.
* backends/IInferior.cs: Moved here from ../interfaces/.
* backends/TargetStackLocation.cs: Moved here from ../classes/.
* backends/Debugger.cs: It's now called `DebuggerBackend'.
* test/ Create Mono.Debugger.dll and Mono.Debugger.Backend.dll.
2002-09-21 Martin Baulig <>
* interfaces/ILanguageCSharp.cs: Killed.
2002-09-21 Martin Baulig <>
* backends/mono-csharp/MonoCSharpLanguageBackend.cs: Make this
work with the new symbol table format.
* arch/CoreFile.cs, CoreFileElfI1386.cs: Reading memory and
getting a backtrace works.
2002-09-21 Martin Baulig <>
* interfaces/IMethod.cs (IMethod.Locals): New property.
* backends/mono-csharp/MonoCSharpLanguageBackend.cs (MonoMethod):
Added support for local variables.
2002-09-20 Martin Baulig <>
* interfaces/IStackFrame.cs (IStackFrame.GetLocalVariableLocation): Removed.
(IStackFrame.GetParameterLocation): Removed.
(IStackFrame.TargetMemoryAccess): New property.
* interfaces/ITargetObject.cs: New interface.
2002-09-20 Martin Baulig <>
* interfaces/IInferior.cs (IInferiorStackFrame.Inferior): New property.
* interfaces/ITargetLocation.cs (ITargetLocation.ReValidate): Removed.
(ITargetLocation.Handle): New property.
* interfaces/ITargetMemoryAccess.cs
(ITargetMemoryReader.Size): New property.
(ITargetMemoryReader.Contents): New property.
(ITargetMemoryAccess.GetMemoryStream): Removed.
* backends/mono-csharp/MonoVariable.cs: We can now read a parameter as a blob.
2002-09-20 Martin Baulig <>
Started to add support for variables.
* interfaces/ITargetType.cs: New public interface.
* interfaces/IVariable.cs: New public interface.
* interfaces/IMethod.cs (IMethod.Parameters): New property.
2002-09-20 Martin Baulig <>
* backends/mono-csharp/MonoCSharpLanguageBackend.cs (MonoMethod):
Set IMethod.MethodHandle to the method's Reflection.MethodBase.
2002-09-20 Martin Baulig <>
Started to add support for core files.
* interfaces/IDebuggerBackend.cs (IDebuggerBackend.ReadCoreFile):
New method to read a core file.
* interfaces/ITargetNotification.cs (ITargetNotification): Added
TargetExited event.
(TargetState): Added CORE_FILE.
* arch/CoreFile.cs: New abstract class to read core files.
* arch/CoreFileElfI386.cs: Core file reader for ELF files on the i386.
* frontends/gui/DebuggerGUI.cs (.ctor): Create the interpreter
here since otherwise the `Quit' command won't work.
(LoadProgram): HACK: if the first argument is `core' read a core
file `thecore' in the current directory.
2002-09-19 Martin Baulig <>
* interfaces/ITargetNotification.cs: New file. Moved TargetState
and ITargetNotification here.
* interfaces/IInferior.cs: Put this into the Mono.Debugger.Backends
2002-09-19 Martin Baulig <>
* backends/Debugger.cs: Only dispose the current stack frame if it
has actually changed.
2002-09-19 Martin Baulig <>
* interfaces/ITargetLocation.cs: Make this work again.
* classes/TargetLocation.cs: This is now an abstract base class.
* classes/TargetStackLocation.cs: New class to represent an
address on the stack.
* interfaces/IMethod.cs: Added HasMethodBounds, MethodStartAddress
and MethodEndAddress.
* interfaces/IStackFrame.cs: Added GetLocalVariableLocation and
2002-09-18 Martin Baulig <>
* interface/IStackFrame.cs: Added FrameInvalid event.
* interface/IDebuggerBackend.cs (IDebuggerBackend.GetBackTrace):
Removed all arguments; this method will cache the return value and
emit the FrameInvalid event on each of the returned frames.
* interface/IInferior.cs (IInferior.GetBackTrace): Return an array
of IInternalBackTrace's; this is an internal interface and should
not be used outside of Debugger.cs.
2002-09-18 Martin Baulig <>
* interface/IInferior.cs, IDebuggerBackend.cs: Added Stop() method.
2002-09-18 Martin Baulig <>
* interface/IArchitecture.cs: Made this interface public.
* interface/IDebugerBackend.cs (IDebuggerBackend.Inferior): Removed
this property, the IInferior interface is a private interface.
You implement it when writing a new debugger backend, but it
shouldn't be used outside of Debugger.cs.
2002-09-18 Martin Baulig <>
* interfaces/IDebuggerBackend.cs: Added properties to specify the
application to debug, its command line arguments, environment and
current working directory.
* backend/Debugger.cs: The ctor no longer needs command line
arguments and application name, they're set with the properties.
* frontends/gui/DebuggerGUI.cs: Create a Debugger instance on
startup and use the new properties to set the application.
2002-09-18 Martin Baulig <>
* frontends/gui/DebuggerGUI.cs (DebuggerGUI.LoadProgram): Call
SetBackend() on the source_view.
2002-09-18 Martin Baulig <>
* class/ObjectCache.cs: New public class. Keeps a hard reference
to an object and transforms the hard reference into a weak
reference after a timeout.
* class/DwarfReader.cs, SymbolTable.cs, MethodBase.cs, MethodSource.cs:
Use the new ObjectCache.
2002-09-18 Martin Baulig <>
* class/TargetException (TargetException): Made this abstract.
* class/InternalError.cs: New exception class.
2002-09-18 Martin Baulig <>
* interfaces/ITargetMemoryAccess.cs (ITargetMemoryReader.BinaryReader):
Return a TargetBinaryReader instead of a BinaryReader.
* backends/debugger.cs (TargetReader): Derive from TargetBinaryReader.
* class/TargetBinaryReader.cs: New public class. Moved most of
DwarfReader.DwarfBinaryReader's functionality here. Implement the
Mono.CSharp.Debugger.IMonoBinaryReader interface so that we can
pass an instance of this class to the symbol reader.
* backends/gdb/*: Removed, nothing useful there anymore.
2002-09-18 Miguel de Icaza <>
* frontends/gui/DebuggerGUI.cs: Rework the bootstrap phase for the
program, now it is posisble to specify the program and arguments
from a dialog box, or to pass them on the command line.
Now it guesses the kind of program (managed/unmanaged) without
having to use the `native' prefix.
Added a few more event hooks to the UI.
* frontend/gui/Everything that depends on DebuggerWidget: It no
longer takes a backend argument. The backend is now configured by
a SetBackend virtual method. If you want to hook up to this, you
have to override the method, and extend it.
* frontend/gui/ New user interface similar to
the VisualStudio debugger.
2002-09-17 Miguel de Icaza <>
* frontends/gui/DebuggerGUI.cs: Use embeded
resource instead of loading from the configuration data.
* test/ Embed
Jump to Line
Something went wrong with that request. Please try again.