# Debugging options for the org.eclipse.ocl.examples.codegen plug-in

# Turn on tracing of the operation dependency analysis operation call calls
org.eclipse.qvtd.compiler/qvtp2qvts/dependency/call=false
# Turn on tracing of the operation dependency analysis creating a new operation analysis
org.eclipse.qvtd.compiler/qvtp2qvts/dependency/create=false
# Turn on tracing of the operation dependency analysis return from each successful analysis
org.eclipse.qvtd.compiler/qvtp2qvts/dependency/finish=false
# Turn on tracing of the operation dependency analysis hypothecating to break operation analysis loops
org.eclipse.qvtd.compiler/qvtp2qvts/dependency/hypothecating=false
# Turn on tracing of the operation dependency analysis addition of pending operation analysis
org.eclipse.qvtd.compiler/qvtp2qvts/dependency/pending=false
# Turn on tracing of the operation dependency analysis addition of refining operation analysis
org.eclipse.qvtd.compiler/qvtp2qvts/dependency/refining=false
# Turn on tracing of the operation dependency analysis return from each analysis (re-)attempt
org.eclipse.qvtd.compiler/qvtp2qvts/dependency/return=false
# Turn on tracing of the operation dependency analysis (re)starting an operation analysis
org.eclipse.qvtd.compiler/qvtp2qvts/dependency/start=false

# Turn on tracing of partitioining 
org.eclipse.qvtd.compiler/qvtm2qvtp/partitioining=false
# Turn on tracing of connection creation 
org.eclipse.qvtd.compiler/qvtp2qvts/connectionCreation=false
# Turn on tracing of connection reouting 
org.eclipse.qvtd.compiler/qvtp2qvts/connectionRouting=false
# Turn on generation of debug graphs 
org.eclipse.qvtd.compiler/qvtp2qvts/debugGraphs=false
# Turn on dump of the consuming node for each class 
org.eclipse.qvtd.compiler/qvtp2qvts/dump/class2consumingNodes=false
# Turn on dump of the consumed properties analysis 
org.eclipse.qvtd.compiler/qvtp2qvts/dump/consumedProperties=false
# Turn on dump of the realized node for each produced class
org.eclipse.qvtd.compiler/qvtp2qvts/dump/class2realizedNodes=false
# Turn on dump of the domain usage for each input model 
org.eclipse.qvtd.compiler/qvtp2qvts/dump/inputModel2domainUsage=false
# Turn on dump of the possible containing properties for each class 
org.eclipse.qvtd.compiler/qvtp2qvts/dump/property2consumingClass=false

# Turn on tracing of the region cycle resolution 
org.eclipse.qvtd.compiler/qvtp2qvts/regionCycles=false
# Turn on tracing of the region depth computation 
org.eclipse.qvtd.compiler/qvtp2qvts/regionDepth=false
# Turn on tracing of the region order computation 
org.eclipse.qvtd.compiler/qvtp2qvts/regionOrder=false
# Turn on tracing of the region call stack computation 
org.eclipse.qvtd.compiler/qvtp2qvts/regionStack=false
# Turn on tracing of the region traversal computation 
org.eclipse.qvtd.compiler/qvtp2qvts/regionTraversal=false

# Turn on tracing of the polled properties computation 
org.eclipse.qvtd.compiler/qvts2qvti/polledProperties=false

# Turn on tracing of the QVTc synthesis 
org.eclipse.qvtd.compiler/qvtr2qvtc/synthesize=false
# Turn on tracing of the QVTr variables analysis 
org.eclipse.qvtd.compiler/qvtr2qvtc/variables=false

# Turn on tracing of the analysis for splitting of multi-headed regions
#org.eclipse.qvtd.compiler/qvtp2qvts/split/analysis=false
# Turn on tracing of the groups within multi-headed regions
org.eclipse.qvtd.compiler/qvts2qvts/split/groups=false
# Turn on tracing of the result of splitting multi-headed regions
org.eclipse.qvtd.compiler/qvts2qvts/split/result=false
# Turn on tracing of the stages of splitting multi-headed regions
org.eclipse.qvtd.compiler/qvts2qvts/split/stages=false
