Jump to content

Call for ideas: Debugging (execution tracing) interface redesign


Recommended Posts

Hi all,

a while back I was thinking about the how bad the LabVIEW debugging really is.

The single stepping is a nightmare, as soon as your project has more than 3 VIs.

Add to this the re-entrant VIs and multiprocess application, and you are soon lost in a sea of windows.

I even posted this idea on the idea exchange, but it is not really thought through.

So I was thinking - why don't we all come up with a good solution to this problem. Something that would address most of our needs and propose solutions for these problems that we would like to see.

THEN we submit this proposal to the idea exchange and also promote it with our kudos. How does that sound?

So, my problems are:

  • too many windows open at once.

Each function opens 2 windows, front panel and block diagram. Once you step through the function, the windows remain open. You don't have a clear idea where you came from (the trace in the drop-down is not really helpful). You don't have a quick access to the input parameters.
  • not seeing all the blocked threads in a multiprocess application.

If you set a break point which gets hit in multiple processes, LabVIEW opens all those windows for you, and it only adds to the clutter. You start debugging one instance, and all the other instances are blocked. Even if you click "continue" in those other instances, the windows stay open. If one of them hits a break-point again, you don't know this. In short, it's a mess...

(This is not indented in the editor)

The best way to overcome all this that I can come up with is and
overview
panel.

It would contain a hierarchical list of all functions (call stack)
  • all VIs where the execution is currently blocked would be marked
  • all VIs that contain a breakpoint would be marked
  • you could easily get to the input parameter values for each function
  • you could disable breakpoints in some threads/processes only concentrating on the instance that is of interest to you
  • you could combine this with an "auto-close" functionality that would automatically close the windows that were not explicitly open (like parents of function you are currently tracing)
  • show the watched wires (to combine this with the problems of the watch window)

Unfortunately I currently don't have the time to create a mockup picture, but I hope my description is good enough to get us started.

Please add your own ideas and discuss.

Thanks, Mike

Edited by mike5
Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.