the program strip
on GNU/Linux (man) allows you to discard symbols from object files or executables. By doing this you gain a smaller file size.
So my question is what are the trade-offs of discarding the symbols?
It makes debugging a great deal harder, since you no longer know what variables or functions are stored where in memory.