{"id":3595,"date":"2017-12-11T21:34:34","date_gmt":"2017-12-12T05:34:34","guid":{"rendered":"https:\/\/visualgdb.com\/w\/?p=3595"},"modified":"2017-12-11T21:34:34","modified_gmt":"2017-12-12T05:34:34","slug":"developing-remote-linux-projects-with-visualgdb-and-virtualbox","status":"publish","type":"post","link":"https:\/\/visualgdb.com\/tutorials\/linux\/virtualbox\/","title":{"rendered":"Developing Remote Linux Projects with VisualGDB and VirtualBox"},"content":{"rendered":"<p>This tutorial shows how to use VisualGDB to develop and debug C\/C++ code on Linux virtual machines running on VirtualBox. We will show how to create a virtual machine, configure the network settings and setup VisualGDB to access it. Before you begin, download and install VirtualBox, Visual Studio and VisualGDB. Also choose a Linux distro you want to install on the VirtualBox and download an ISO image of the install DVD. If you are unfamiliar with Linux distros, we recommend using a 64-bit <a href=\"https:\/\/kubuntu.org\/getkubuntu\/\">Kubuntu<\/a>.<\/p>\n<ol>\n<li>First we will show how to create a new Linux Virtual Machine. Start VirtualBox and click &#8220;New&#8221; to create a new Virtual Machine:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/01-vbox1.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3630\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/01-vbox1.png\" alt=\"01-vbox\" width=\"772\" height=\"582\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/01-vbox1.png 772w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/01-vbox1-300x226.png 300w\" sizes=\"(max-width: 772px) 100vw, 772px\" \/><\/a><\/li>\n<li>Enter the name for the VM, set the type to &#8220;Linux&#8221; and the version according to the distro you are going to use:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/02-name.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3597\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/02-name.png\" alt=\"02-name\" width=\"350\" height=\"399\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/02-name.png 350w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/02-name-263x300.png 263w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/li>\n<li>On the next page select the memory size you want to allocate for your VM:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/03-memory.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3598\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/03-memory.png\" alt=\"03-memory\" width=\"350\" height=\"399\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/03-memory.png 350w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/03-memory-263x300.png 263w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/li>\n<li>Select &#8220;Create a virtual hard disk now&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/04-disk.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3599\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/04-disk.png\" alt=\"04-disk\" width=\"350\" height=\"399\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/04-disk.png 350w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/04-disk-263x300.png 263w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/li>\n<li>Proceed with the default &#8220;VDI&#8221; disk format:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/05-type.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3600\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/05-type.png\" alt=\"05-type\" width=\"428\" height=\"454\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/05-type.png 428w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/05-type-283x300.png 283w\" sizes=\"(max-width: 428px) 100vw, 428px\" \/><\/a><\/li>\n<li>Select &#8220;Dynamically allocated&#8221; and click &#8220;Next&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/06-dyn.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3601\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/06-dyn.png\" alt=\"06-dyn\" width=\"428\" height=\"454\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/06-dyn.png 428w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/06-dyn-283x300.png 283w\" sizes=\"(max-width: 428px) 100vw, 428px\" \/><\/a><\/li>\n<li>Set the disk size based on the amount of applications and data you want to have on the VM:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/07-loc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3602\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/07-loc.png\" alt=\"07-loc\" width=\"428\" height=\"454\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/07-loc.png 428w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/07-loc-283x300.png 283w\" sizes=\"(max-width: 428px) 100vw, 428px\" \/><\/a><\/li>\n<li>Press &#8220;Create&#8221; to create the new virtual machine. Once it is created, click on &#8220;Start&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/08-settings.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3603\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/08-settings.png\" alt=\"08-settings\" width=\"772\" height=\"582\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/08-settings.png 772w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/08-settings-300x226.png 300w\" sizes=\"(max-width: 772px) 100vw, 772px\" \/><\/a><\/li>\n<li>VirtualBox will ask for the start-up disk that will install Linux on your virtual machine. Select the ISO image with the Linux installer you have previously downloaded and click &#8220;Start&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/09-startup.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3604\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/09-startup.png\" alt=\"09-startup\" width=\"642\" height=\"552\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/09-startup.png 642w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/09-startup-300x258.png 300w\" sizes=\"(max-width: 642px) 100vw, 642px\" \/><\/a>The virtual machine will boot from the installer ISO. The next steps of this tutorial will be specific to Kubuntu and might slightly vary if you are using a different Linux distro.<\/li>\n<li>Double-click on the &#8220;Install Kubuntu&#8221; shortcut:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/10-inst.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3605\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/10-inst.png\" alt=\"10-inst\" width=\"802\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/10-inst.png 802w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/10-inst-300x252.png 300w\" sizes=\"(max-width: 802px) 100vw, 802px\" \/><\/a><\/li>\n<li>The Kubuntu installation wizard will start. Select your language on the first page and click &#8220;Continue&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/11-welcome.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3606\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/11-welcome.png\" alt=\"11-welcome\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/11-welcome.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/11-welcome-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>We recommend keeping the default settings on the next page. Click &#8220;Continue&#8221; to proceed:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/12-prepare.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3607\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/12-prepare.png\" alt=\"12-prepare\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/12-prepare.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/12-prepare-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>Select &#8220;Guided &#8211; use entire disk&#8221; and click &#8220;Install Now&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/14-disk.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3608\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/14-disk.png\" alt=\"14-disk\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/14-disk.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/14-disk-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>Select your time zone and click &#8220;Continue&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/15-time.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3609\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/15-time.png\" alt=\"15-time\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/15-time.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/15-time-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>On the next page confirm your keyboard layout:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/16-keyboard.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3610\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/16-keyboard.png\" alt=\"16-keyboard\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/16-keyboard.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/16-keyboard-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>Finally set your user name, password and a machine name. The machine name specified here will be reported to your DHCP server and hence can be used to find the machine from VisualGDB if your DHCP server is configure to create a DNS record for it:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/17-settings.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3611\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/17-settings.png\" alt=\"17-settings\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/17-settings.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/17-settings-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>Wait for the installation to complete:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/18-progress.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3612\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/18-progress.png\" alt=\"18-progress\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/18-progress.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/18-progress-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>Once Kubuntu is installed, click &#8220;Restart now&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/19-restart.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3613\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/19-restart.png\" alt=\"19-restart\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/19-restart.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/19-restart-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a>The VM will now restart and boot into the newly created Linux installation. Now we will show how to configure the network settings so that you can access your virtual machine remotely.<\/li>\n<li>Open a terminal on your VM and run &#8220;ifconfig&#8221; if it&#8217;s not installed, run the following command to install it:\n<pre class=\"\">sudo apt-get install net-tools<\/pre>\n<p><a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/20-ifconfig.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3614\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/20-ifconfig.png\" alt=\"20-ifconfig\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/20-ifconfig.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/20-ifconfig-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>Ifconfig will display the current IP address of the VM, however in the default configuration this address won&#8217;t be reachable from your Windows machine:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/21-ipaddr.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3615\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/21-ipaddr.png\" alt=\"21-ipaddr\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/21-ipaddr.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/21-ipaddr-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>Open the VM settings and switch the network to &#8220;Bridged&#8221;. Ensure that the underlying adapter corresponds to your physical network adapter:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/22-bridged.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3616\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/22-bridged.png\" alt=\"22-bridged\" width=\"651\" height=\"430\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/22-bridged.png 651w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/22-bridged-300x198.png 300w\" sizes=\"(max-width: 651px) 100vw, 651px\" \/><\/a><\/li>\n<li>Ensure your network has a functioning DHCP server and run &#8220;sudo dhclient -v&#8221; to acquire an IP address for the VM:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/23-dhcp.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3617\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/23-dhcp.png\" alt=\"23-dhcp\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/23-dhcp.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/23-dhcp-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a>If you don&#8217;t have a DHCP server, you would need to configure the IP address manually and ensure it doesn&#8217;t conflict with any other machines on your network.<\/li>\n<li>In order to access the Linux machine over network, install the OpenSSH Server package by running the following command:\n<pre class=\"\">sudo apt-get install openssh-server<\/pre>\n<p><a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/24-openssh.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3618\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/24-openssh.png\" alt=\"24-openssh\" width=\"930\" height=\"674\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/24-openssh.png 930w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/24-openssh-300x217.png 300w\" sizes=\"(max-width: 930px) 100vw, 930px\" \/><\/a><\/li>\n<li>Try pinging the VM from the Windows machine using the name specified during Linux installation (not the name entered when creating the VM in VirtualBox):<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/ipaddr.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3631\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/ipaddr.png\" alt=\"ipaddr\" width=\"827\" height=\"367\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/ipaddr.png 827w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/ipaddr-300x133.png 300w\" sizes=\"(max-width: 827px) 100vw, 827px\" \/><\/a>If it doesn&#8217;t work, try using the IP address shown by <strong>dhclient<\/strong> instead. If this doesn&#8217;t work either, double-check that the VM is attached to the correct network adapter.<\/li>\n<li>Now you are ready to create your first C\/C++ project for this machine with VisualGDB. Start Visual Studio and launch the VisualGDB Linux Project Wizard:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/25-newprj.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3619\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/25-newprj.png\" alt=\"25-newprj\" width=\"941\" height=\"653\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/25-newprj.png 941w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/25-newprj-300x208.png 300w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/25-newprj-392x272.png 392w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/25-newprj-130x90.png 130w\" sizes=\"(max-width: 941px) 100vw, 941px\" \/><\/a><\/li>\n<li>Proceed with the default MSBuild subsystem:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/26-app.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3620\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/26-app.png\" alt=\"26-app\" width=\"822\" height=\"662\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/26-app.png 822w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/26-app-300x242.png 300w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/li>\n<li>On the next page click &#8220;Create a new SSH connection&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/27-newssh.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3621\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/27-newssh.png\" alt=\"27-newssh\" width=\"822\" height=\"662\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/27-newssh.png 822w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/27-newssh-300x242.png 300w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/li>\n<li>Enter the host name (verified by pinging it) and the user name\/password: <a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/28-newconn.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3622\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/28-newconn.png\" alt=\"28-newconn\" width=\"539\" height=\"432\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/28-newconn.png 539w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/28-newconn-300x240.png 300w\" sizes=\"(max-width: 539px) 100vw, 539px\" \/><\/a><\/li>\n<li>Click &#8220;Create&#8221; to begin connecting. VisualGDB will ask whether you want to save the host key. Confirm it by pressing &#8220;Save&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/29-savekey.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3623\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/29-savekey.png\" alt=\"29-savekey\" width=\"496\" height=\"184\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/29-savekey.png 496w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/29-savekey-300x111.png 300w\" sizes=\"(max-width: 496px) 100vw, 496px\" \/><\/a><\/li>\n<li>Once the VM is selected in the wizard, click &#8220;Next&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/30-next.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3624\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/30-next.png\" alt=\"30-next\" width=\"822\" height=\"662\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/30-next.png 822w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/30-next-300x242.png 300w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/li>\n<li>VisualGDB will check the VM for the packages required to create your project and suggest installing them automatically. Click &#8220;yes&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/31-gcc.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3625\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/31-gcc.png\" alt=\"31-gcc\" width=\"445\" height=\"196\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/31-gcc.png 445w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/31-gcc-300x132.png 300w\" sizes=\"(max-width: 445px) 100vw, 445px\" \/><\/a><\/li>\n<li>Proceed with the default settings for storing the source files and click &#8220;Finish&#8221; to create your project:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/32-files.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3626\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/32-files.png\" alt=\"32-files\" width=\"822\" height=\"662\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/32-files.png 822w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/32-files-300x242.png 300w\" sizes=\"(max-width: 822px) 100vw, 822px\" \/><\/a><\/li>\n<li>Try building the project with Ctrl-Shift-B:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/33-build.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3627\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/33-build.png\" alt=\"33-build\" width=\"1024\" height=\"682\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/33-build.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/33-build-300x200.png 300w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/li>\n<li>Set a breakpoint in the function outputting the &#8220;Hello, World&#8221; line and press F5 to start debugging:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/34-debug.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3628\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/34-debug.png\" alt=\"34-debug\" width=\"1024\" height=\"682\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/34-debug.png 1024w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/34-debug-300x200.png 300w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/li>\n<li>You can customize various advanced settings for your project by right-clicking on it in Solution Explorer and selecting &#8220;VisualGDB Project Properties&#8221;:<a href=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/35-props.png\"><img loading=\"lazy\" decoding=\"async\" class=\"aligncenter size-full wp-image-3629\" src=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/35-props.png\" alt=\"35-props\" width=\"786\" height=\"594\" srcset=\"https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/35-props.png 786w, https:\/\/visualgdb.com\/w\/wp-content\/uploads\/2017\/12\/35-props-300x227.png 300w\" sizes=\"(max-width: 786px) 100vw, 786px\" \/><\/a><\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>This tutorial shows how to use VisualGDB to develop and debug C\/C++ code on Linux virtual machines running on VirtualBox.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[33,106],"_links":{"self":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/3595"}],"collection":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/comments?post=3595"}],"version-history":[{"count":2,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/3595\/revisions"}],"predecessor-version":[{"id":3633,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/posts\/3595\/revisions\/3633"}],"wp:attachment":[{"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/media?parent=3595"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/categories?post=3595"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/visualgdb.com\/w\/wp-json\/wp\/v2\/tags?post=3595"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}