Installing and Debugging the Source Code

== Installing ==
# Run the Source SDK and choose Create a Mod. See Create a Mod for details about the process.
# Choose a compiler
# Go! Get started with Your First Entity.
To compile your code on Linux, see Compiling under Linux. To get the latest code, see GitHub.
== Debugging ==
Debugging is the process of a human examining closely the inner workings of a program. It can reveal the causes of crashes and other bugs.
=== Windows ===
# Make sure you are working in the Debug configuration, not Release.
# In the Solution Explorer (Microsoft Visual C++), right-click on the active project (the one in bold) and choose Properties. It doesn't matter whether you're working with the server or client.
# In the window that appears, choose Debugging from the left-hand list.
# Change Command to the path to the .exe file you want to launch (the same on that runs when you play the game/mod in question, e.g. C:\Steam\SteamApps\common\source sdk base 2007\hl2.exe).
# Change Command Arguments to read something like -allowdebug -dev -sw -game "C:\Steam\SteamApps\SourceMods\MyMod"
# Change Working Directory to the folder containing the .exe you chose for Command e.g. C:\Steam\SteamApps\common\source sdk base 2007.
# Before debug you need to unpack all game resources to your mod folder or sdk base (at least for 2006). Otherwise you will get white screen, then pink console and other glitches! It's very important. You need to unpack shaders (white screen bug) from Source SDK Base\vpks, then resources\ to Source SDK Base\hl2\ (will fix menu strings) and finally Source SDK Base\platform (pink console), don't forget expressions\, otherwise npc won't move their lips and other stuff like models, materials, etc... don't try to use different source engine models except from your engine base, otherwise you will get glitches.
You can now press F5 at any time to start debugging. (If you really do want to debug in Release mode, repeat the above for that configuration. But don't expect the results to be very useful).
The paths will be unique to the version of the SDK being used. For example, with Source SDK 2013, the settings for a single player mod might be: 
 Command: C:\Program Files (x86)\Steam\steamapps\common\Source SDK Base 2013 Singleplayer\hl2.exe
 Command Arguments: -allowdebug -dev -sw -condebug -console -toconsole -game "C:\My_Mod\source-sdk-2013\sp\game\mod_hl2" +map my_map
 Working Directory: C:\Program Files (x86)\Steam\steamapps\common\Source SDK Base 2013 Singleplayer\
==== Run-time attachment ====
If you want to debug a process that is already running, choose Debug > Attach to Process... and select it from the list.
=== Linux ===
# Use the environment variable CFG=debug when running the command you normally use to generate the makefiles with the VPC script. (Run again with CFG=release to go back to producing release binaries.) 
# Make and Install
# Open a terminal window and cd to the location of the executable you are running
# Perform gdb srcds_linux (or whatever the name is)
# Perform run <parameters> to start the program
* On a crash ("segfault"), do bt ("backtrace") to see the callstack.
* To break into the debugger, press ; to continue afterwards perform cont.
* To set a breakpoint, do break <function>. See help breakpoint for more details.
* To print an expression, do print <expr>.
Category:Programming
Category:Modding