Revision Difference
Debugging#561892
⤶
<cat>Code.Intro</cat>⤶
<title>Debugging</title>⤶
⤶
⤶
⤶
#Debugging using Visual Studio⤶
⤶
##Starting in debug mode⤶
⤶
S&box supports debugging, it's as simple as opening up the [generated](Your_First_Project#openingyourprojectinvisualstudio) `s&box.sln` and hitting **Debug** > **Start Debugging** ( <key>F5</key> ). This will launch a new instance of s&box and attach a debugger to it.⤶
⤶
⤶
##Attaching a debugger⤶
⤶
You can also attach a debugger to an already running instance of the game by going to **Debug** > **Attach to Process** ( <key>Ctrl</key> + <key>Alt</key> + <key>P</key> ) and selecting `sbox.exe` in the list of processes.⤶
⤶
After this you can reattach the debugger to the same process using **Debug** > **Reattach to Process** ( <key>Shift</key> + <key>Alt</key> + <key>P</key> ).⤶
⤶
##Using breakpoints⤶
⤶
![Breakpoint](https://files.facepunch.com/wiki/files/a59bc/8d90cbdd54b5728.png)⤶
⤶
Breakpoints allow you to pause execution when it reaches specified points in your code (breakpoints). To add or remove a breakpoint click on the left from the line of code you want to pause or put the caret on this line and press <key>F9</key>. A red circle should appear and the line should turn red.⤶
⤶
When this line will be reached execution will pause allowing you to inspect variables values, continue execution step-by-step and more. After you are done press <key>F5</key> to continue execution.⤶
⤶
Breakpoints can be added and removed freely in runtime, unlike code changes they don't require recompiling.⤶
⤶
##Disabling Edit and Continue⤶
⤶
You may notice that you get green underlines while debugging and editing code, this is due to **Edit and Continue** being enabled in the Visual Studio settings, normally this is a good thing but due to s&box hotloading it needs to be disabled.⤶
You can disable this by going to **Tools** > **Options** > (or **Debug** > **Options**) > **Debugging** > **General** then scrolling about half way down and unchecking **Edit and Continue**.⤶
⤶
#Debugging using Visual Studio Code⤶
⤶
Refer to [Setting up Visual Studio Code](https://wiki.facepunch.com/sbox/Setting_up_VSCode#addingdebuggerconfiguration) to setup debugging for the time being⤶
⤶
#Debugging using Rider⤶
⤶
Refer to [Setting up Rider](https://wiki.facepunch.com/sbox/Setting_up_Rider#debugging) to setup debugging for the time being