Apart from the symbols, the debugger needs to have access to the source code belonging to the components being debugged. This is needed to step through the various source lines as they were in your code editor. Likewise, it wouldn’t make sense to install source code on the target device, since it is not needed for normal operation and would consume a lot of disk space.