8

Debuggers like the ones in Eclipse, NetBeans, Visual Studio etc

I am wondering because, debuggers work on the machine code while it is being executed... How they keep track of the line numbers in the source code?

Isn't it very difficult to keep track of line numbers since a high level instruction may have a bunch of machine language instructions and another might have no machine language instruction (probably because it is just supporting another high level instruction)?

1 Answer 1

7

When you compile your code with debugging flags (e.g., gcc -g ...), the compiler inserts information about the source files and line numbers into the compiled binary so that the debugger can use this information during runtime. This answer discusses debugging symbols in more detail.

Sign up to request clarification or add additional context in comments.

2 Comments

Is that the difference between debug version and the release version?
No. That may be a difference between debug and release versions, but typically debugging builds will also include a variety of extra logging, console output, additional testing, and other code meant to ease the task of identifying errors in the code. Really, a "debug version" is whatever the author of the code wants it to be.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.