2012-11-22 38 views

回答

2

这取决于是否使用调试信息编译类文件。通常,编译器会插入一个LineNumberTable属性,该属性给出了与每个字节码范围相对应的原始源行号。然而,LineNumberTable属性只是元数据,所以作者可以在其中添加任何他们想要的小约束或完全忽略它。 (通常通过编译-g: none或通过在其上运行混淆器来完成)

无论如何,该属性的格式是entires(2字节)后跟(开始pc,行号)对(两个字节)。您也可以拥有多个LineNumberTable属性。当然,如果你正在使用一个库,它可能已经为你解码了。

相关问题