cfg

发布时间 2023-07-04 08:09:02作者: zwlwf

将ReorderFunctions 伪装成函数调用图打印类

void ReorderFunctions::runOnFunctions(BinaryContext &BC) {
  auto &BFs = BC.getBinaryFunctions();
  Cg = buildCallGraph(BC,
                      [](const BinaryFunction &BF) {
                        return false;
                      }
                      );

  outs() <<"I am the result ______________ \n\n\n";
  for(NodeId F = 0; F < Cg.numNodes(); F++) {
    if (!Cg.successors(F).empty())
      outs() << Cg.nodeIdToFunc(F)->getOneName() <<":\n";
    for(NodeId v : Cg.successors(F) ) {
      outs() << Cg.nodeIdToFunc(v)->getOneName() <<", ";
    }
    outs() << "\n";
  }

}