-* Debugging support
+* Debugging information
- There
+ Compile your programs using the `-g' flag in MCS, that will all a special
+ resource containing debugging information to your executable.
+ To get stack traces with line number information, you need to run your
+ program like this:
+ <b>
+ mono --debug program.exe
+ </b>
+ Notice that the program will need to be compiled with the -g
+ flag and that running with --debug will slow down the execution.
+
+* Debugging with GDB
+
+ If you use GDB to debug your mono process, you can use the function
+ print_method_from_ip(void *address) to obtain the name of a method
+ given an address.
+
+ For example:
+
+ <pre>
+(gdb) where
+#0 ves_icall_System_String_GetHashCode (me=0x80795d0) at string-icalls.c:861
+#1 0x0817f490 in ?? ()
+#2 0x0817f42a in ?? ()
+#3 0x0817f266 in ?? ()
+#4 0x0817f1a5 in ?? ()
+</pre>
+
+ You can now use:
+
+<pre>
+(gdb) p print_method_from_ip (0x0817f490)
+IP 0x817f490 at offset 0x28 of method (wrapper managed-to-native) System.String:GetHashCode () (0x817f468 0x817f4a4)
+$1 = void
+(gdb) p print_method_from_ip (0x0817f42a)
+IP 0x817f42a at offset 0x52 of method System.Collections.Hashtable:GetHash (object) (0x817f3d8 0x817f43b)
+$2 = void
+</pre>
+
+ Mono support libraries use a couple of signals internally that
+ confuse gdb, you might want to add this to your .gdbinit file:
+
+<pre>
+ handle SIGPWR nostop noprint
+ handle SIGXCPU nostop noprint
+</pre>
+
+* Mono Debugger
+
+ The Mono debugger is written in C# and can debug both managed
+ and unmanaged applications, support for multiple-threaded
+ applications and should be relatively easy to port to new
+ platforms.
+
+ Details of the release are available in <a
+ href="http://lists.ximian.com/archives/public/mono-list/2003-January/011415.html">post</a>.
+
+ The debugger contains both Gtk# and command line interfaces.
+ The debugging file format used in Dwarf (it's already supported
+ by our class libraries and the Mono C# compiler; To debug C
+ applications, you need a recent GCC, or to pass the -gdwarf-2
+ flag to gcc).
+
+ You can download the releases from <a
+ href="http://primates.ximian.com/~martin/debugger/">Martin Baulig's
+ home page.</a>
+
+
+
+
+
+
+
+