Since we released the first version of VisualGDB, it has evolved from a basic debugging plugin to a comprehensive extension that helps manage numerous toolchains, packages, build machines, project templates and more. VisualGDB offers GUI for managing those artifacts on the developer machines, however setting up a new development machine from scratch could be annoying due to necessity to setup remote host connections, toolchains, aliases etc.
VisualGDB 5.3 Preview 4 introduces a new mechanism that allows instantly sharing various common settings with other team members – VisualGDB Team Settings.Team Settings uses shared Windows folders to synchronize settings between different machines. It can be enabled via Tools->VisualGDB->Manage Team Settings:In order to use Team Settings, you will need to share a directory (via Windows Shared Folders) and tell VisualGDB to store the settings there:
VisualGDB will rely on the Windows file permissions to manage read/write access to the shared settings and will automatically prevent two users from editing the shared settings at once. Once the directory is specified, VisualGDB will let you choose the precise settings to share. I will give you an overview of each type of shared settings below.
Once an entry is shared, it will automatically appear in the remote computer lists on all of the computers using the same shared settings location. All options (like proxy server and file transfer mode) will be automatically transferred as if they were manually entered on each computer. For each connection you can choose to share the password, or let the users re-enter it (private keys won’t be automatically shared and would require entering a password to reconfigure the key).
If you periodically change the physical machines beyond some common roles (like the primary build machine), host aliases let you do the change in one place only, instead of modifying all of the related projects. Sharing host aliases makes it even simpler: change the alias target on any machine with write access to the shared settings and the new value will be immediately propagated to all of your development machines:
Another type of setting that could be easily shared is the per-host settings (e.g. default temporary directory) and remote toolchains:E.g. if your Linux machine contains a yocto-based toolchain that needs to be manually located when creating a project, you can share it via Team Settings and it will automatically appear on all development machines in your team. Note that the toolchains and common settings like temporary directory are specific to each remote host, not a host/user combination. So you can share those even if your team members use different Linux user accounts that are not shared via the Team Settings.
If you are using any of the cross-toolchains or BSPs shipped with VisualGDB, you don’t need to install them manually on each machine anymore. Simply check the specific versions you want installed on each of your development machines and VisualGDB will do it for you:
Similarly once you decide to move on from an older version of a toolchain/BSP, uncheck it and VisualGDB will remove it on each machine where it was auto-installed via Team Settings.
Quick Debug allows easily debugging programs without creating Visual Studio projects for them. It could be useful for occasional debugging of small tools built via build scripts, or to debug code built with domain-specific IDEs. With Team Settings you can simply share any of your Quick Debug presets with other team members and they will be immediately able to start using them:
Note that once a Quick Debug preset is shared, it cannot be edited and can only be saved under a different name.
If you are relying on custom project templates, you can make project creation one step easier by sharing the default template directory setting with other team members. Once the directory setting shared, every development machine will use the specified directory to look for project templates:
Team settings are stored in an XML file in the shared settings directory. VisualGDB will do background checks (usually once every minute) and if the file was changed, it will automatically resynchronize the settings in the background (VisualGDB keeps a local copy of all shared settings, so losing the connection to the shared directory won’t break your projects). You can also synchronize the settings manually by running VisualGDB.exe /teamsync:
Lastly, if you are deploying VisualGDB to many machines at once, you can configure team settings via command line. Simply run VisualGDB.exe /teamsync:<network folder with team settings> and it will automatically import all the settings and remember the directory, so further changes will be synchronized automatically.