Pro Level Debugging

I am a long time professional developer in my company’s IT department, primarily using Visual Studio. I have recently been using Ignition to create Industrial applications and to support engineers and technicians across our company. There is a LOT to like about Ignition. One thing I’m struggling with is how to debug. I’m accustomed to being able to set break points, variable watches / inspecting values, etc. and I’ve not found anything like this so far. All I’ve been able to do is send output to various logs/files and then try to see what happened. As I’m relatively new to Python there are often syntax errors in my scripts and expressions. What am I missing? Or is this functionality simply not present? Do I need a Jython debugger? Is that a “thing”?

Also, please take a look at this Designer list of errors for a Perspective Menu Tree.
Ignition Designer Cryptic Errors
The menu tree works fine - but evidently there are 3 errors associated with each entry in my menu, which again works exactly like I want it to. Any ideas?

And I have never been able to get the Designer external debugger to work. I’m assuming this is the Chromium browser dev tools? All I see is this: Ignition Designer Dev Tools Error

I like Ignition a lot (some of our developers just want to do React, but this is imo a very good IDE), and I’ve been productive with it even with my lack of knowledge and the limited debugging capabilities I’m aware of. I would be a LOT more productive with pro level debugging. So I’m pretty happy, but I could be delighted with Ignition if I can figure out how to get this. I’d like to be able to recommend Ignition to the VP of I&T as a mainstream development option, but I can not at this time due to the limited debugging functionality I’ve found. I did figure out (with this forums help) how to version control my projects with Azure DevOps / Git.

A lot of this could be my newness to Ignition, and lack of experience with the platform. Teach me! I’m ready to learn and become even more productive with this product.

Someone correct me if I am wrong, but I believe that it was mentioned in the developer panel at ICC a few weeks ago that an in-application debugger with advanced debugging tools was not something that IA currently is planning on implementing.

I’ve found the easiest way to debug (at least with scripting) is to wrap the entire code in a try catch clause and then print the error information:

import sys

try:
	#Your code here
	
except:
	#Print to console
	system.perspective.print(str(sys.exc_info()))
	#Or output a log event
	logger = system.util.getLogger('myLogger')
	logger.error(str(sys.exc_info()))

This definitely isn’t perfect and for large utility scripts I will usually write code in an external python IDE and then copy/paste, but it is about all you can do as Ignition stands today.

You may be interested in some of the work Corso Systems has done:

We’re definitely interested in improving the script authoring and debugging experience, but, as it turns out, it’s a really hard problem :slight_smile:. Rest assured we’re not happy with the state of things as they are now and want to improve it, but it will take time.

3 Likes

Thank you for the tips!

Thank you for the links! I’ll check them out.