Debugging 调试器如何知道源代码中的行号?

Debugging 调试器如何知道源代码中的行号?,debugging,line-numbers,Debugging,Line Numbers,像Eclipse、NetBeans、Visual Studio等中的调试器 我想知道,因为调试器在执行机器代码时会对其进行处理。。。 他们如何跟踪源代码中的行号 跟踪行号不是很困难吗?因为一条高级指令可能有一堆机器语言指令,而另一条指令可能没有机器语言指令(可能是因为它只支持另一条高级指令)?当您使用调试标志编译代码时(例如,gcc-g…),编译器将有关源文件和行号的信息插入已编译的二进制文件中,以便调试器可以在运行时使用此信息。更详细地讨论调试符号。这是调试版本和发布版本之间的差异吗?否。这可

像Eclipse、NetBeans、Visual Studio等中的调试器

我想知道,因为调试器在执行机器代码时会对其进行处理。。。 他们如何跟踪源代码中的行号


跟踪行号不是很困难吗?因为一条高级指令可能有一堆机器语言指令,而另一条指令可能没有机器语言指令(可能是因为它只支持另一条高级指令)?

当您使用调试标志编译代码时(例如,
gcc-g…
),编译器将有关源文件和行号的信息插入已编译的二进制文件中,以便调试器可以在运行时使用此信息。更详细地讨论调试符号。

这是调试版本和发布版本之间的差异吗?否。这可能是调试版本和发布版本之间的差异,但通常,调试构建还将包括各种额外的日志记录、控制台输出、附加测试和其他代码,以简化识别代码中错误的任务。实际上,“调试版本”是代码作者想要的任何版本。