2009-04-15 Atsushi Enomoto <atsushi@ximian.com>
[mono.git] / web / jit-debug
index 2263210ee6ed18e1ff261f1358274591099c323b..66b4411ff07d901618781294ddfce48e13eb31d4 100644 (file)
@@ -1,7 +1,7 @@
 * Debugging information
 
-       Compile your programs using the `-g' flag in MCS, that will generate a file
-       with the extension .dbg containing the dwarf symbols for your executable.
+       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:
        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
+       mono_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 mono_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 mono_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
        platforms.
 
        Details of the release are available in <a
-       href="http://lists.ximian.com/archives/public/mono-list/2003-January/005192.html">post</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 (its already supported
+       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).
 
-       The debugger is available now, you can get it from <a
-       href="http://primates.ximian.com/~martin/debugger/debugger-0.2.0.tar.gz">here</a>
+       You can download the releases from <a
+       href="http://primates.ximian.com/~martin/debugger/">Martin Baulig's
+       home page.</a>
 
 
 
@@ -38,4 +75,4 @@
        
        
 
-       
\ No newline at end of file
+