This is a small feature but for plugin developers it may make a huge difference in work-flow.
In the plugin system up to version 2.1 (everything we’ve shipped through X-Plane 11.05) plugins are packed like this:
my_plugin/ my_plugin/64/mac.xpl my_plugin/64/win.xp
This has one problem: every plugin on your install is either named mac.xpl, win.xpl, or lin.xpl.
And as it turns out, pretty much every debugging tool ever assumes that each DLL will have its own unique name because it’d be crazy to do otherwise. The decision to make the file name in the fat plugin structure the OS was a really dumb one by me.
With version 3.0 of the SDK, you can now pack like this:
and with that format, each plugin’s name makes its DLL unique.
This should fix a bunch of things:
- You’ll be able to start X-Plane via X-code to debug your plugin without all hell breaking loose.
- Back traces on Windows debugging tools should make the plugin executing clear even without symbols.
- Any kind of memory map dump (including those in Apple crash reports) will unambiguously show what plugin code is loaded into what memory address.
The existing 2.0 format (fat plugins shown above) and 1.0 format (thin plugins, supported only in the global plugins folder) will continue to work indefinitely – they’re still there.
But if you are going to target X-Plane 11.10 and use the new plugin system features, you may want to use the new packaging and save yourself some debugging chaos.