The Developer’s Guide to Remote Debugging
Published: 2021-06-30 16:28:37

What’s more aggravating than debugging a system? Doing it remotely. It’s aggravating because not only are you frustrated that your code isn’t doing what it’s supposed to do, but now you have to figure out how to get someone to help you check out your code. In addition, you’ve exhausted all resources, and you have no idea what you’re doing wrong.

Unlike other remote communication tools, [CoScreen](https://www.coscreen.co/) makes remote debugging easier. It allows you to communicate with your fellow developers and share multiple windows to find your bugs and broken pieces of code faster. Without CoScreen, you’re likely losing valuable time discussing what’s wrong (if you’re even able to describe the bug correctly) instead of physically seeing the problem and being able to fix it together on the spot.

![CoScreen remote debugging and screen-sharing tool](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ptslacmdbtm7husrs0lk.gif)

##How do you debug remotely?##
Let’s say you’re a developer and you’re working remotely—most likely due to the COVID-19 pandemic, your team has transitioned to a remote or hybrid work model. You’re coding, and, inevitably, your code doesn’t do what you want it to do. The error is impossible to find, and you’re getting frustrated.

First, you’ll try a few solo debugging avenues.

###An example of a solo debugging adventure###
Let’s say you are doing remote debugging, and you find a bug in your code that isn’t saving the user data as it should in an app. This means you should spend some time manually looking through the code on your computer, reading the files that contain the code responsible for saving user data.

If that fails, then start to debug your code. Depending on where the bug is (front end or back end), the debugging will look different (and, at this stage, you may not know if it’s a front- or a back-end problem).

At this point, use a debugger (especially if it’s in the front end). If it’s in the back end, use logging to log values at points in the code. If that doesn’t work, go to [Stack Overflow](https://stackoverflow.com/), [GitHub](https://github.com/), or Google to see if someone else is having (or has had) this issue.

Once you’ve exhausted all of your solo [debugging](https://codinginflow.com/find-bug) avenues, it would help if you had a second pair of eyes to help you find the bug.

###You have a few options:###
Get a hold of one or multiple teammates—preferably someone who is also familiar with the code. This is an opportunity to do pair programming or mobbing.

* Download a video conferencing tool to work through the problem. (This means you’ll have to find the [right tool to get the job done](https://www.coscreen.co/blog/top-8-remote-pair-programming-tools/); more on that below.)
* Try talking through the issues.
* Generally, if you can explain the problem in enough detail to understand it, this act alone may help you find a solution. Sometimes, it helps if you take a moment to step back and see it from a different perspective to find the errors you couldn’t see before.
* Show the code to a teammate. Compare code if you’re working on it together. Maybe they can see what you can’t. Switching roles can help: let your teammate take a look at it as if they wrote the code.
* Take a really close look at your code. Sometimes, with the backlighting, you may not notice a missing semicolon, or you may have forgotten to close a brace.
* When all else fails, try posting your code on Stack Overflow—the developer community may be able to help.
* Finally, if that doesn’t work, try “filing an issue” with the framework (React, Laravel, Rails, etc.), as it’s likely not an issue with the code but with the framework.

![Remote debugging - bug meme-coscreen](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/5y879ecdks9mi03xcq4q.png)

##The current issues with remote debugging##
The problem is a lot of the current communication platforms are not built for developers and don’t allow to show and compare code while they’re also talking to each other. You’ll have to pick and choose what features you’ll be able to have, like the ability to chat with each other, share screens, or show multiple screens at the same time.

Sometimes, the only thing you can do is download the platforms and try each one out to see which one works for you. (Spoiler alert: you can read to the end of the article, and we can tell you what the best platform to use is and why.)

Sometimes video conferencing tools just add to the problem. [Most video conferencing software](https://time.com/5819327/zoom-alternatives/) creates more issues rather than making remote debugging easier for developers. There are plenty of existing tools that offer a few features to help devs communicate.

##One size does not fit all: Typical video conferencing tools##
Zoom, Facetime, Google Duo, and Skype allows you to do voice and video calling along with chat messaging. They don’t let you share multiple windows simultaneously for a side-by-side comparison. Zoom offers screen sharing (unlike the others), but two users can’t both share windows on a joint desktop at the same time.

These big-name platforms aren’t suitable for programmers or developers because they lack side-by-side window sharing and editing, which enable you to make changes to your code quickly and efficiently. This side-by-side comparison and remote control is really what makes remote debugging possible.

###Some Apps Don’t allow you to share multiple screens###
Most developers aren’t going to use the following apps because they don’t allow developers to share monitors to compare code. If you want to make a change to another developer’s code, you’ll have to explain your code and where to look to find the issue without the ability to see multiple monitors at the same time.

[WhatsApp[(https://www.whatsapp.com/) is similar to Facebook Messenger in the sense that you can do voice and video calling and chat messaging, but it’s more like what you’d use to call your mom and dad. A cool feature with WhatsApp is you can also leave a voice message, so there’s no rush for someone to get back to you, and you don’t have to sync up if you’re in different time zones.

[Discord](https://discord.com/) is also like WhatsApp and Facebook Messenger, but it’s for gamers. It’s integrated with supported games, like Halo, so that you can talk to a different kind of teammate. ;) Most developers aren’t going to use this for anything other than gaming, though.

[Slack](https://slack.com/) is the approach that most co-workers use. It integrates some of your other communication tools, like Zoom and Google Calendar. It allows users to communicate with each other by chatting, scheduling meetings, and doing one-on-one video/voice calls.

[VS Code Live Share](https://visualstudio.microsoft.com/services/live-share/) is the product that’s going to be the most similar to CoScreen. It’s typically what most developers use to share code, and it’s a real-time code collaboration tool. It’s basically an extension in VS Code, meaning you need a Microsoft account or a GitHub account to use it. It has a multi-user remote control feature, like CoScreen, but with limited capabilities. The other downside is it doesn’t integrate with a lot of tools.

[Duckly](https://duckly.com/), formerly known as GitDuck, is also a great real-time code collaboration tool, but it connects directly from your IDE (integrated development environment), which is not necessary with CoScreen. When you use CoScreen, you don’t need to connect to anything additional in order to do coding, which is a big advantage for CoScreen. Duckly allows you to share your code and terminal in a video call. With CoScreen however, you can share your code without sharing your whole screen.

###Some apps don’t allow Full Multi-User Remote Control###
Microsoft Teams is what teams use to communicate. Usually, you use Teams if Microsoft is what’s commonly used at your office. It doesn’t make sense to use Microsoft Teams unless you’re using other Microsoft products, so they are all compatible with each other.

Let's say you’re doing remote debugging with another developer on Microsoft Teams. You have your code up on your screen, and, as you're comparing each other's code, you see a bug in their code on their screen. You now have to physically tell them where the bug is so they can make the appropriate change to the code. You can't physically go in and make the change yourself because you don't have the ability to control or edit their screen.

##How CoScreen helps you find bugs faster##
There's a solution out there that offers many of the same features as some of the video conferencing tools previously mentioned, but it also solves additional problems with remote debugging that those tools don't address.

CoScreen was built for developers by developers, which gives you the edge you need to code more efficiently and remote debug easily. CoScreen allows [multiple users to share multiple windows](https://www.youtube.com/watch?v=W3gltVKtxcM) at the same time.

![multiple users to share multiple windows](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/tpggz3uxywdrjv7rtq5r.png)

CoScreen shares individual windows but not the entire desktop, so users don’t have to sacrifice their privacy. It even has this cute little tag at the corners of the windows, so you can see exactly what you’re showing in your tab before you show it!

![Screen sharing - windows](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/ha0w1v4pur91qp4awavg.gif)

A stellar feature of CoScreen is that it enables you and your team members to share, edit and control any app windows simultaneously on your joint workspace. This means that your teammate can physically go into your code (through a window you shared) and make changes to your code. CoScreen users can edit each other’s shared windows as if they were their own.

![Coscreen vs screen sharing tools](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/kk5p4o9cgzh0i4l3uk6b.png)

##Beyond debugging: Other use cases for CoScreen##
[CoScreen](https://www.coscreen.co/) is a unique and versatile tool for developers to use, and you can use it in several ways other than to squash bugs in your code. If you’re trying to teach someone some part of the code, CoScreen is an amazing teaching tool because it gives you the opportunity to pull up their code alongside your own while you’re talking them through what to do.

Alternatively, another use when helping a new developer—you can pair programming with them on CoScreen. Sometimes, when onboarding a new developer, companies pair them with an experienced developer so the experienced developer can teach the newer developer and pass on their skill set. They might also try to do a little remote debugging together.

####CoScreen does everything except squash the bugs for you####
The potential to increase the productivity of remote debugging with CoScreen is massive.

[Try CoScreen for free!](https://www.coscreen.co/download)