06-04-2014 10:07 AM
Hi
I tried to debug a sample project based on actor framework in LabVIEW 2013.01.f2 with desktop execution trace toolkit.
I've added some instances of the 'Generate User-Defined Trace Event Function' to get the trace of functions. As this node does not have an error chain I've wrapped it with a simple VI that provides such error chain. Makes it easier to enforce execution sequence...
That wrapper VI is stored in a subfolder of user.lib
HOWEVER: When I run this program with the wrapped VI it crashes. But if I put the 'Generate User-Defined Trace Event Function' node in a sequence it does NOT crash...
06-04-2014 01:11 PM
Cool! What happens if you put the wrapper VI inside a single-frame sequence? Where in the code is this being used? Inside a method? Is the VI where is is being used reentrant or anything?
Mike...
06-05-2014 01:42 AM
Mike, thx for your reply.
This is basically the template code that is generated when creating anew project with Actor Framework. I wanted to study the Last Ack Message functionality, so in one of the nested actors I modified the Stop Core.vi to insert a message '<Stop received at date&time' into that actors private data (a field My_msg added). In the main actors Actore Core.vi I modified the evet handler loop:
If I insert a wrapper like this:
, the event handler looks like:
And this one crashed when being run, at least in conjunction with desktop trace execution.
So AFAIK this is reentrant as all the actors are. But for that test I had just othis project running, so there was only one instance...
06-06-2014 03:49 AM
Hi Lul,
could you please test to place the wrapper VI you created in a sequence frame.
Additionally you can add error handling code in your wrapper VI to ensure the VI inside is only executed if no error occurred before.
Regards,
Melanie