LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
AristosQueue (NI)

A VI Hierarchy window that shows full state of VIs in memory

Status: New

A couple of recent ideas regarding the VI Hierarchy window are good, but do not go far enough, in my opinion. I would like to see the VI Hierarchy window annotated with a lot more status information about VIs, including:

 

  • A glyph showing if Execution Highlighting is enabled
  • A run arrow on any VI that is running top level.
  • A path from the top level VI through any currently executing subVIs (the path may be forking as there may be multiple subVIs running in parallel)
  • That path would have temporary lines going to VIs that are invoked using the Call By Reference node (as opposed to reordering the hierarchy tree to put such VIs as subVIs of the caller)
  • A glyph showing any VIs that have breakpoints on them and a different glyph if the VI is actually stopped at a breakpoint.
  • Reentrant clones of VIs, so that call chains can actually be seen, including the ability to double click on a particular reentrant clone to open its front panel
  • Any other execution state information that can be easily expressed as glyphs and highlighted connections among VIs and/or other file types shown in the hierarchy window (open to brainstorming).
  • Whether debugging is enabled or disabled on each VI

The VI Hierarchy window has already been updated in LV 2009 and 2010 to show all the connections among different files and resources. Finishing it out to show the full state of the system would make it a powerful debugging tool.

9 Comments
GregR
Active Participant

The current hierarchy window shows references between your VIs. As a debugging tool, I want to see the current state of execution. This is fairly different. The hierarchy window shows all the VIs referenced from my top level VI. For debugging I want a live reflection that shows the subVIs that are currently being called. I want to watch subVIs show up and go away as calls are made and complete. This is at least 2 distinct modes of the hierarchy, but I would suggest they be 2 independent windows. I think the concepts of exploring your source and watching the state of execution are distinct enough to not mix them in one window.

jlokanis
Active Participant

AQ - If you pull all that off, I might actually fine the hierarchy window useful again!  Can't say I have used it much since LV4.0.

What you seem to be describing is almost like a graphical 'trace' of an application.  I suspect that some of the hooks used in the Desktop Trace Execution tool would be useful here.  While you are at it, see if you can get marketing to make the DTE a standard part of the DEV system...

-John
------------------------
Certified LabVIEW Architect
F._Schubert
Active Participant

GregR: For me this sounds like the uml concept of instance specification. Not sure what I think of this, but I'd propably want to go to a vi and pause or set a breakpoint when it's executed, which needs to be defined in some diffrent way for reentrant VIs when editing and running.

 

Felix

PhillipBrooks
Active Participant

Don't forget source control and library (lvlib) related options. You may want to show or hide these, much like the vi.lib/globals/ctls options in VI Hierarchy. I may not want to see all the details of a private lib/driver that I don't manage; just the interface into it.

 

It would be nice to show/hide "sourcenders" (see this LAVA discussion for a definition of the concept of sourcenders)

 


Now is the right time to use %^<%Y-%m-%dT%H:%M:%S%3uZ>T
If you don't hate time zones, you're not a real programmer.

"You are what you don't automate"
Inplaceness is synonymous with insidiousness

altenbach
Knight of NI

One problem is the fact that the hierarchy of a complicated project is already quite messy, with lines going everywhere.

 

Maybe it would be possible to map the hierarchy (and all your suggested improvements) into a more dynamic 3D interface that can be navigated in 3D.

GregR
Active Participant

My suggestion to keep this distinct from the hierarchy window is specifically to help with how complicated hierarchies can be. VI hierarchies are particularly difficult to comprehend when they are wide, because at each level out branches out to so many things. It is not unusual for a VI to reference many different subVIs. However, during execution most of those get serialized for various reasons. The actual number of active subVIs is usually 1 or 2 except in cases specifically written for parallelism. This means an execution hierarchy will be much narrower then the full VI hierarchy and focused on the activities that take a lot of time or the specific place where you have paused execution.

PJM_Labview
Active Participant

> Reentrant clones of VIs, so that call chains can actually be seen, including the ability to double click on a particular reentrant clone to open its front panel

 

The ability to see reentrant instance use to be available in previous LabVIEW version (I forgot which version this went away, probably 8.0). You use to be able to open the hierarchy window and see you asynchronous reentrant instance pop up once instantiated. This was very useful.



  


vipm.io | jki.net

Jim_Kring
Trusted Enthusiast
AristosQueue (NI)
NI Employee (retired)

A new item to add to the list for this idea: whether or not a VI has a password set and whether that password has been typed in or not. Borrowing from this idea:

http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Password-protected-VI-s-to-have-tiny-indicator-of-such...