When you compile with debug symbols turned on it inserts them in your compiled assembly, so that a debugger can tell you information about your program when it crashes, what line the error occured on, a stack trace etc.
Release mode compiles the assembly without including any of this information.