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

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

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

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

# Trace information related to action administration
org.eclipse.gmf.runtime.common.ui.printing/debug/actions/admin=false
# Trace when actions are run
org.eclipse.gmf.runtime.common.ui.printing/debug/actions/run=false
