Skip to content
Nick Vrvilo edited this page Sep 24, 2015 · 2 revisions

‼️ CnC-OCR has been incorporated into the Habanero CnC Framework. Please refer to habanero-rice/cnc-framework for the latest CnC-OCR source code and documentation.

Examining the specification graph

This page describes usage of the step inverse tool, which computes the inverse functions of step definitions (solves for input tags in terms of output collections and steps). The page makes the assumption that the reader is familiar with the Workflow and Visualizing computation graphs sections.

1. Compute inverse functions

The following command will solve for the inverse functions of all steps defined in the specification file.

cncocr_inv GraphName.cnc

2. Blame steps for a particular item

The following command will solve for the set of steps that could have prescribed a particular step or put a particular item.

cncocr_inv GraphName.cnc --blame StepOrCollection@tag1,tag2...

3. Debug deadlocks

The following command can diagnose the possible reasons for deadlock in an execution of a program (compiled and run with debug logging enabled).

cncocr_inv GraphName.cnc --log cnc_events.log

This call will attempt to find all potentially blocked items in the graph, meaning all items which were requested but never put, and it will perform a blame on each of those items to identify the steps which could have caused deadlock.