调试器,如 Eclipse、NetBeans、Visual Studio 等中的调试器
我想知道,因为调试器在执行机器代码时对其进行工作......他们如何跟踪源代码中的行号?
跟踪行号是不是很困难,因为一个高级指令可能有一堆机器语言指令而另一个可能没有机器语言指令(可能是因为它只是支持另一个高级指令)?
调试器,如 Eclipse、NetBeans、Visual Studio 等中的调试器
我想知道,因为调试器在执行机器代码时对其进行工作......他们如何跟踪源代码中的行号?
跟踪行号是不是很困难,因为一个高级指令可能有一堆机器语言指令而另一个可能没有机器语言指令(可能是因为它只是支持另一个高级指令)?
当您使用调试标志(例如gcc -g ...
)编译代码时,编译器会将有关源文件和行号的信息插入到编译后的二进制文件中,以便调试器可以在运行时使用这些信息。 这个答案更详细地讨论了调试符号。