3 Answers
3

The main change will be an increase in the size of the binary, as it will now hold extra debug information. Depending on the target you are building for, it might (or not) have any other effect during execution. For example when generating ELF, all debug information is maintained in a separate section that need not even be loaded into memory unless when running inside a debugger (so it will not require more actual memory to run even thought the binary is larger)

Basically it includes more information about the source of your program that would otherwise be lost in the compilation process. This includes more symbol names, and the line numbers that pieces of machine code correspond to. See this reference for a bit more detail.