Installing and Debugging the Source Code
- 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.
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.
- 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.
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\
If you want to debug a process that is already running, choose Debug > Attach to Process... and select it from the list.
- Disable OPTFLAGS in the root makefile
- Uncomment DEBUG in your project's makefile. Confirm:Change it to read
-O0 -g -ggdb3.
- Make and Install
- Open a terminal window and cd to the location of the executable you are running
gdb srcds_linux(or whatever the name is)
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
- To set a breakpoint, do
break <function>. See
help breakpointfor more details.
- To print an expression, do