The next version of the TopSky plugin has been in development now for almost two years. Progress has been slow for various reasons, but for a long time now the only thing delaying the release has been a possible crash-causing bug in the code. I've never encountered the crash myself, and the few reports I have of it happening are months apart with so far no clue as to where the issue might be, or even if it is the plugin at fault or something else.
Rather than delay the release indefinitely, I've decided to put the plugin into a public beta period, hoping that there are brave souls willing to risk getting a crash so that I could get the necessary information to fix the issue, or if enough time passes and no issues are found, consider it stable enough and release it.
For testing purposes, the plugin package contains a command-line utility called ProcDump. It is used to monitor the EuroScope process, and in case of a crash write a memory dump which I can then examine to find out where the problem is in the code. While I can't prevent anyone using the plugin without ProcDump running, I can't stress enough how important it is to use it as a memory dump is most likely the only way to find out the cause for the crash if it happens, as it doesn't seem to be related to any specific action.
If you're still interested in helping out, here's the download link.
The beta package contains up-to-date common manual sets, a version history document listing some of the main changes and folders including files for three setups: Estonia (EE), Finland (FI) and Sweden (SE). The instructions here assume the basic controller package for the country is already installed as the beta package only contains the files specific to the beta plugin.
It is possible to have both the current release version of the plugin and the beta installed at the same time, and that is the configuration I recommend as you might want to use the familiar and well-tested release version on some occasions. However, here are install instructions for both the "beta only" and "release+beta" setups:
Put the procdump.exe file somewhere
Copy the files in the package's PluginsBeta folder to the Plugins folder of your setup, overwriting where necessary
Extract the files in the package's Settings folder to a temporary location
Rename the settings files by removing the "_beta" part from each file
Copy the settings files to the Settings folder of your setup, overwriting the existing files
Put the procdump.exe file somewhere
Create a copy of the Plugins folder of your setup and rename the copy PluginsBeta
Copy the files in the package's PluginsBeta folder to the new PluginsBeta folder of your setup, overwriting where necessary
Copy the files in the package's Settings folder to the Settings folder of your setup
Create a copy of the profile file you normally use in EuroScope, name it as you want
Edit the new profile file using a text editor as follows:
Replace all occurrences of "Lists.txt" with "Lists_beta.txt"
Replace all occurrences of "Symbols.txt" with "Symbols_beta.txt"
Replace all occurrences of "Tags.txt" with "Tags_beta.txt"
Replace all occurrences of "Plugins\TopSky.dll" with "PluginsBeta\TopSky.dll"
To enable the crash dump generation, the ProcDump utility must be run when using the plugin. It can be launched from the command line if necessary, but it's probably easiest to create a batch file to do it automatically. Here's how:
Create a text file wherever you like, and name it appropriately, for example "ES+procdump.bat"
Edit the file using a text editor to contain the following:
start "" "C:\some folder\shortcut.lnk"
cmd /c ""C:\another folder\procdump.exe" -e 1 -ma -w euroscope.exe "C:\yet another folder\dumps""
"C:\some folder\shortcut.lnk" is the shortcut you use to launch ES (you may need to create a new shortcut to use the new profile file if you chose the "release+beta" setup)
"C:\another folder\procdump.exe" is where you put the procdump.exe file
"C:\yet another folder\dumps" is the folder where you want the crash dumps to be put to. It is optional, but if specified, make sure the folder exists as ProcDump will not create it by itself (if not specified, the dump will be put in the folder the batch file is in).
Then just run the batch file whenever you want to use the beta plugin, it'll start both EuroScope and ProcDump for you. ProcDump will open a command prompt window when it's running, don't close it! Note that if you're running more than one instance of EuroScope at a time, the batch file can't be used to launch the second (and subsequent) instances as then the "euroscope.exe" in the command won't be enough to specify the wanted process. Launch the new EuroScope instance as you normally would, then open a command prompt window and type in the following command to attach ProcDump to the EuroScope instance:
"C:\another folder\procdump.exe" -e 1 -ma -w PID "C:\yet another folder\dumps"
PID is the process ID number for the correct EuroScope process. To see that, open Task Manager and see its Details page for the PID number. Note that you'll have to check the PID of the already started ES instance before you launch the next one so you know which one is the new one. A bit complicated but only necessary when using multiple ES instances and wanting to make sure a crash dump is generated if any of the instances crash.
It is possible to create a memory dump file from Task Manager even without ProcDump running. Just right-click on the desired process and select "Create dump file". It will be created into a temporary folder so don't forget to move it somewhere safe before logging off or shutting down your computer. I'm not sure if this dump file provides the same information as the one produced by ProcDump, or if it can be created in all crash situations, but if it can and you've forgotten to run ProcDump, it's better than nothing so try to keep this option in mind as well.
I've noticed that opening some file dialogs in EuroScope will for some reason make ProcDump think ES has crashed. It will then create the dump and terminate itself (the only way to spot this is to notice that the command prompt window is no longer displayed on the task bar...). If that happens, ProcDump can be started again and it's probably easiest to have another batch file to do that. Just create a copy of the first batch file and remove the first line from it that launches the ES shortcut. The remaining line runs ProcDump and it automatically attaches to the already running EuroScope process, it won't be necessary to start EuroScope again (which is handy if you're already controlling).
It's a good idea to test everything is set up correctly regarding the crash dumps when you've done all this. Run the batch file and wait until ES has started and the plugin has loaded. Then, enter the command ".topskycrash" to the EuroScope command line. It will cause an immediate unhandled exception that crashes the plugin and EuroScope. Check that the dump file was created. If you can’t find the dump file (it's somewhat over 200MB in size and should be named "EuroScope.exe_170424_224756.dmp" for a crash on April 24th 2017 at 22:47:56 system time) where you thought it’d be or anywhere for that matter, something went wrong in the setup.
If you have any questions about the beta program or how to install and set it up, please post on this thread. I hope I got all the information right, but I wouldn't be surprised if it wasn't 100% correct. I'll clarify where necessary.
If the plugin crashes and a dump file is available, let me know where I can download it.
Even though the main objective is to find out if there is a problem in the code - and if so - fix it, please report if you find anything wrong, no matter how trivial. All these reports should be posted in a dedicated thread I'll create for this purpose in the Finland FIR subforum. That'll keep all the information in one place, and I have moderator privileges there to keep the thread tidy. Also post there if the plugin crashes regardless of whether a dump is available or not so others get an idea of what's happening.