主权项 |
一种在包括一个或多个处理器和系统存储器的计算机系统上用于对在不同编译阶段生成的调试信息进行组合的方法,所述计算机系统还包括用于将源代码编译为可执行代码的多阶段编译器(101),所述多阶段编译器具有包括至少第一编译阶段(102)和第二编译阶段(103)的多个编译阶段,所述多个编译阶段中的每一编译阶段被配置成在代码格式之间转换并朝着从源代码(111)生成可执行代码(113)的方向前进,所述方法包括:将第一调试信息(121)和第二调试信息(122)融合为合并的第三调试信息(123)的动作,所述第一调试信息(121)生成于将采用第一格式的第一代码(111)翻译为采用不同的第二格式的第二代码(112)的第一编译阶段(102),所述第一调试信息将所述第一代码中的每一指令映射(131)至所述第二代码中对应的指令并将所述第一代码中的每一符号映射(132)至所述第二代码中对应的符号,所述第二调试信息(122)生成于将所述第二代码(112)翻译为采用不同的第三格式的第三代码(113)的第二编译阶段(103),所述第三格式不同于所述第一格式和所述第二格式两者,所述第二调试信息(122)将所述第二代码中的每一指令映射(113)至所述第三代码中对应的指令并将所述第二代码中的每一符号映射(134)至所述第三代码中对应的符号,所述合并的第三调试信息(123)将所述第一代码中的每一指令直接映射至所述第三代码中对应的指令并将所述第一符号直接映射至所述第三符号,融合所述第一调试信息和所述第二调试信息包括对于所述第一代码中的每一指令和符号:使用所述第一调试信息来标识所述第二代码中与所述第一代码中的指令或符号对应的指令或符号的动作;使用所述第二调试信息来标识所述第三代码中与所述第二代码中所标识的指令或符号对应的指令或符号的动作;将所述第一代码中的指令或符号直接地映射(136,137)至所述第三代码中所标识的对应的指令或符号成为单个映射集的动作,所述直接映射提供所述第一代码中的所述指令或符号与所述第三代码中所标识的对应的指令或符号之间的直接链接,所述单个映射集使得所述多阶段编译器能够将包括所述第一调试信息和所述第二调试信息中的映射的中间映射从所得的可执行代码剥离,由此降低所述可执行代码的存储器占用量;以及将所述第一代码中的指令或符号至所述第三代码中的指令或符号的直接映射(136,137)存储在所述合并的第三调试信息中的动作。 |