Debugging a raster backend in a Scalable RIP environment
This page applies to Harlequin v13.1r0 and later; and to Harlequin Core but not Harlequin MultiRIP
When writing raster backend code it is very useful to set the FarmRIPDebugWait
global config option to true when you want to step through and debug your code. This is because each farm RIP is its own executable with its own address space. Debugging the controlling RIP is of little use when writing raster backends.
This option will cause a farm RIP that has just been launched by the controlling RIP to wait for a debugger to connect to it before continuing. The forced break point is just after the first pass of argument parsing. This allows you to then put further break points on your own raster backend code. So, the workflow is:
- Set
FarmRIPDebugWait
: true in ripfarm_global.json. - Start the Scalable RIP as per usual but use -nrips 1 (so you debug just one farm RIP). Although it is fine to debug multiple farm RIPs, this is probably the most useful first pass before looking into concurrency issues.
- When the farm RIP is launched you will see that it is idle. Connect a debugger to the launched farm RIP. On Windows, the process comment should have a label such as fr001 to make it easier to find.
- Save your project and add further break points to your code.
- In the debugger, continue with the program run. The Scalable RIP should proceed to process jobs until your own break points have been hit. You can now debug your raster backend code.