Any actor-based system can get complicated quickly. The MGI Monitored Actor provides a quick and easy way to visualize what actors are currently running in the system and provides tools to help debug those running actors.
Actor based systems are dynamic. The number and types of actors running is constantly changing and reacting to user input, measured data, or any number of other factors. This is great news when developing complex and efficient software, this is bad news when it comes to debugging. What actors are running right now? How do I highlight execution on one instance of a running actor? How do I stop a runaway actor?!?!?
These are frustrating things to deal when developing an actor based application.
The MGI Monitored Actor toolkit provides an easy way to monitor your dynamically spawned actor application. It provides a nice user interface that allows you visualize the actors currently running in the system. From this interface you can easily open the running Actor core.vi
. This allows you prob/set breakpoints/highlight execution as needed to properly debug your code. Additionally from the user interface you can stop running actors.
The only difference between a monitored actor and a plain-old actor is a monitored actor inherits from Monitored Actor.lvclass
. Thats it! That means any existing actors you have can be trivially converted to monitored actors, and any new actors just need to inherit from a slightly different parent.
Once your inheritance has been changed, just launch your actor like normal. The Monitored Actor Window will automatically pop up and show the list of running actors.
Once your monitored actor is launched, the monitored actor window will launch. This window contains a tree showing the running actors. Double click on any of these actors to open it's Actor core.vi
currently running clone. This means that you have access to the specific instance of the actor that's running. You can use all of your normal debugging tools like highlight execution, probes, etc.
Additionally, from the monitored actor window you can send stop messages and perform a few other debug tasks.
See Contributing.md for information on how to submit pull requests. Bugs can be reported using the repositories issue tracker.
Fixed monitor crash when launching message logger.
Updated Readme and Relinked VIs
Port from VIPM
Copyright (c) 2018 Moore Good Ideas, Inc . All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: 1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. 2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. 3. Neither the name of the copyright holder nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.