我正在使用找到here的ObjectWeb ASM库来解析jar文件并读取方法的字节码。我已经编写了代码来从字节码指令列表中生成控制流图。
然而,在我对控制流程图执行某些操作后,我希望能够" export"控制流程图返回(简单)指令列表。 从理论上讲,我应该能够遍历所有基本块并打印出存储在每个块中的指令。但是,执行此操作很可能会导致指令处于非常奇怪的顺序,因为基本块列表没有排序。
我已经读过形成一个"支配树"可以帮助找出基本块的最佳(最合乎逻辑的)顺序。 我不确定如何计算支配树以及如何使用它来对基本块进行排序。
有没有人对他们可以分享的这个主题有任何了解?
感谢。