【问题标题】:How do debuggers know the line numbers in the source code?调试器如何知道源代码中的行号?
【发布时间】:2013-01-08 18:23:07
【问题描述】:

调试器,如 Eclipse、NetBeans、Visual Studio 等中的调试器

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

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

【问题讨论】:

    标签: debugging line-numbers


    【解决方案1】:

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

    【讨论】:

    • 这就是调试版和发布版的区别吗?
    • 没有。这可能是调试版本和发布版本之间的一个差异,但通常调试版本还包括各种额外的日志记录、控制台输出、额外的测试以及其他旨在简化识别错误任务的代码代码。真的,“调试版本”是代码作者想要的任何东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-16
    • 2013-01-21
    • 2012-05-16
    • 2018-05-30
    相关资源
    最近更新 更多