Skip to content

Tracks allocated gobject instances and gives a managed/native backtrace.

Notifications You must be signed in to change notification settings

alanmcgovern/gobject-tracker

Repository files navigation

Compilation:

Just run make inside the main directory.

Installation:

Run make install to install the module into a side-by-side monodevelop checkout. If your monodevelop is somewhere else then set the correct path using the MONODEVELOP_BIN_DIR variable.

Usage:

If you are compiling xamarin studio from source, just use

$ cd monodevelop && make run-leaks

Alternatively, export these two environment variables and then launch Xamarin Studio. This method may be less accurate as it does not set up dllmaps in mono.

DYLD_FORCE_FLAT_NAMESPACE=1
DYLD_INSERT_LIBRARIES=/full/path/to/gobject-tracker/libgobject-tracker.dylib

Send the USR1 signal to your running Xamarin Studio instance to queue a dump of all living objects.

$ kill -USR1 $pid_of_xamarin_studio

You will have to trigger the creation, ref or unref of a gtk object in order to perform the queued object dump. It is not safe to attempt to perform the dump inside a signal handler. You can trigger this by just mousing over Xamarin Studio.

Additional features:

By default all object creation/ref/unref operations will be logged. If you wish to gather stacktraces for each event just export this environment variable:

LOG_FLAGS=all

If you wish to gather data for just one object type export something like this:

LOG_TYPE=GtkFrame

About

Tracks allocated gobject instances and gives a managed/native backtrace.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published