gpt4 book ai didi

java - 如何调试Java编译器源代码(Javac)本身?

转载 作者:行者123 更新时间:2023-11-30 02:44:23 28 4
gpt4 key购买 nike

我想知道Java代码到字节码的详细编译过程,比如一行Java代码是如何翻译成字节码的,所以我想在Java编译源代码中设置断点,但是我不知道知道如何做到这一点,有任何引用或步骤吗?

顺便说一句,我不是问如何使用Java调试器(显然我知道如何使用),我的意思是如何调试Java编译器源代码而不是Java源代码。

最佳答案

您关于编译器如何工作的问题太宽泛,无法在这里回答。去读一本标准编译器教科书。

关于调试编译器:

我倾向于在编译器中大量使用断言( self 诊断)和大量小型目标语言测试程序,这些测试程序专注于各种语言功能,以 self 验证其正确功能。 (我的上一个编译器在 10 年的时间内构建了大约 1000 个这样的测试程序,以及一个用于编译和运行所有这些程序的脚本)。通常,断言或测试的失败会提示我编译器哪里出了问题,并且只需检查即可识别错误。

我经常添加特殊代码来转储有关编译器状态的关键信息以及可以使用特殊的未记录的命令行开关启用的 Activity 跟踪。这些特殊的转储表明编译器在哪里误入歧途,并且通常可以启用代码检查来识别错误的位置。

如果做不到这一点,我会使用用于编写编译器的语言的调试器。

我不认为这些技术特别特别。当尝试使用任何大型、复杂的应用程序时,它们非常有用。

关于java - 如何调试Java编译器源代码(Javac)本身?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40648438/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com