About SysprogsSync

This page explains how SysprogsSync is used to synchronize the files between Windows and Linux machines and how to install it.

VisualGDB often needs to synchronize various directories between the Windows and the Linux machine. E.g. synchronizing the sysroot of a cross-toolchain, caching headers from the Linux side, uploading modified sources to the Linux machine for building. Due to network latencies and overhead, checking and transferring each file separately is not practical, so VisualGDB uses SysprogsSync to quickly list files on the Linux side, analyze symbolic links, filter our redundancies and transfer the minimal subset of files.

SysprogsSync consists of a single Linux executable that is automatically launched by VisualGDB when it needs to enumerate remote files, or download/upload a large set of files. Normally, SysprogsSync will be automatically built using the g++ compiler on the target and installed to the <home directory>/.SysprogsSync folder.

Installing SysprogsSync manually

If the automatic installation of SysprogsSync fails, please try installing it manually by following the steps below:

  1. Locate the SysprogsSync.cpp file under the VisualGDB directory (e.g. C:\Program Files (x86)\Sysprogs\VisualGDB\TargetTools\SysprogsSync.cpp).
  2. Upload the file to your target system and compile it:
    mkdir -p ~/.SysprogsSync
    g++ SysprogsSync.cpp -o ~/.SysprogsSync/SysprogsSync-v1.2
  3. If your target does not contain a g++ compiler, try building the SysprogsSync.cpp file with a cross-compiler and then deploy it to the target.

If you are using several different user accounts to access the same target, you can install the SysprogsSync executable to any directory referenced in the $PATH variable (e.g. /usr/bin). Ensure that it's named according to the version (e.g. SysprogsSync-v1.2). You can find out the version by running the SysprogsSync executable, or by checking the SysprogsSync.cpp file.

Disabling SysprogsSync

If you do not want to use SysprogsSync for a specific target, you can disable it via Tools->VisualGDB->Manage SSH Connections->Host-wide Settings->SysprogsSync engine = disabled.

Troubleshooting

If you encounter errors while using SysprogsSync, set the following setting: Tools->Options->VisualGDB->General->SSH->Log SysprogsSync Transfers. Then check for SysprogsSync.log files in the synchronized directories on the Windows side.