# Debugging options for the org.eclipse.gmf.runtime.common.ui.action plug-in

# Turn on general debugging for the org.eclipse.gmf.runtime.common.ui.action plug-in
org.eclipse.gmf.runtime.common.ui.action/debug=true

# Trace when exceptions are caught
org.eclipse.gmf.runtime.common.ui.action/debug/exceptions/catching=false
# Trace when exceptions are thrown
org.eclipse.gmf.runtime.common.ui.action/debug/exceptions/throwing=false

# Trace when methods are entered
org.eclipse.gmf.runtime.common.ui.action/debug/methods/entering=false
# Trace when methods are exited
org.eclipse.gmf.runtime.common.ui.action/debug/methods/exiting=false
