Debug symbols
This section will introduce you to the topic of debug symbols and why they are important to get a complete picture of the application that is being debugged.
What are debug symbols?
As we have already established, the application running on the target device is raw machine code that is not human-readable. With a disassembler, we can translate that machine code to assembly to get a better understanding of the application that is running on the device.
But what about the high-level programming language that we used to write the original source code? What about the original variable and function names, array sizes, string references, and many more details that are used in our high-level programming language to depict the program's logic?
That is where debug symbols come into play.
Debug symbols describe the originally compiled source code and map the machine code to their corresponding line numbers. Together with the original source code files, we can now reference the...