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
, thenresources\
toSource SDK Base\hl2\
(will fix menu strings) and finallySource SDK Base\platform
(pink console), don't forgetexpressions\
, 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\
Note:You will be told that symbols could not be found for <whatever>.exe - this is normal, as you don't have that source code. Ignore the warning.
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 withCFG=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 Ctrl+C; to continue afterwards perform
cont
. - To set a breakpoint, do
break <function>
. Seehelp breakpoint
for more details. - To print an expression, do
print <expr>
.