| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- * Debugging information
- 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>
-
-
-
|