本文整理汇总了C++中Proc::getName方法的典型用法代码示例。如果您正苦于以下问题:C++ Proc::getName方法的具体用法?C++ Proc::getName怎么用?C++ Proc::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Proc
的用法示例。
在下文中一共展示了Proc::getName方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: decode
// Somehow, a == NO_ADDRESS has come to mean decode anything not already decoded
void FrontEnd::decode(Prog *prog, ADDRESS a) {
if (a != NO_ADDRESS) {
std::cout<<"decode main at a!= NOADDRESS\n";
prog->setNewProc(a);
if (VERBOSE)
LOG << "starting decode at address " << a << "\n";
UserProc* p = (UserProc*)prog->findProc(a);
if (p == NULL) {
if (VERBOSE)
LOG << "no proc found at address " << a << "\n";
return;
}
if (p->isLib()) {
LOG << "NOT decoding library proc at address 0x" << a << "\n";
return;
}
std::ofstream os;
PROGMAP::const_iterator it;
for (Proc *pProc = prog->getFirstProc(it); pProc != NULL; pProc = prog->getNextProc(it)) {
std::cout<<"Proc name Before main "<<pProc->getName()<<"\n";
}
processProc(a, p, os);
for (Proc *pProc = prog->getFirstProc(it); pProc != NULL; pProc = prog->getNextProc(it)) {
std::cout<<"Proc name After decode main "<<pProc->getName()<<"\n";
}
p->setDecoded();
} else { // a == NO_ADDRESS
std::cout<<"decode child proc\n";
bool change = true;
while (change) {
change = false;
PROGMAP::const_iterator it;
for (Proc *pProc = prog->getFirstProc(it); pProc != NULL; pProc = prog->getNextProc(it)) {
if (pProc->isLib()) continue;
UserProc *p = (UserProc*)pProc;
if (p->isDecoded()) continue;
// undecoded userproc.. decode it
change = true;
std::ofstream os;
std::cout<<"Signature Before :"<<p->getSignature()->prints()<<"\n";
int res = processProc(p->getNativeAddress(), p, os);
std::cout<<"Signature After :"<<p->getSignature()->prints()<<"\n";
//std::cout<<"Sig type:"<<p->getSignature()->prints()<<"\n";
std::cout<<"process Proc finish< res:"<<res<<"\n";
if (res == 1)
p->setDecoded();
else
break;
// Break out of the loops if not decoding children
if (Boomerang::get()->noDecodeChildren)
break;
}
if (Boomerang::get()->noDecodeChildren)
break;
}
}
prog->wellForm();
}
示例2: parseCmd
//.........这里部分代码省略.........
}
proc->setName(argv[3]);
} else if (!strcmp(argv[1], "cluster")) {
if (argc <= 3) {
std::cerr << "not enough arguments for cmd\n";
return 1;
}
Cluster *cluster = prog->findCluster(argv[2]);
if (cluster == NULL) {
std::cerr << "cannot find cluster " << argv[2] << "\n";
return 1;
}
Cluster *ncluster = prog->findCluster(argv[3]);
if (ncluster == NULL) {
std::cerr << "cluster " << argv[3] << " already exists\n";
return 1;
}
cluster->setName(argv[3]);
} else {
std::cerr << "don't know how to rename a " << argv[1] << "\n";
return 1;
}
} else if (!strcmp(argv[0], "info")) {
if (argc <= 1) {
std::cerr << "not enough arguments for cmd\n";
return 1;
}
if (!strcmp(argv[1], "prog")) {
std::cout << "prog " << prog->getName() << ":\n";
std::cout << "\tclusters:\n";
prog->getRootCluster()->printTree(std::cout);
std::cout << "\n\tlibprocs:\n";
PROGMAP::const_iterator it;
for (Proc *p = prog->getFirstProc(it); p; p = prog->getNextProc(it))
if (p->isLib())
std::cout << "\t\t" << p->getName() << "\n";
std::cout << "\n\tuserprocs:\n";
for (Proc *p = prog->getFirstProc(it); p; p = prog->getNextProc(it))
if (!p->isLib())
std::cout << "\t\t" << p->getName() << "\n";
std::cout << "\n";
return 0;
} else if (!strcmp(argv[1], "cluster")) {
if (argc <= 2) {
std::cerr << "not enough arguments for cmd\n";
return 1;
}
Cluster *cluster = prog->findCluster(argv[2]);
if (cluster == NULL) {
std::cerr << "cannot find cluster " << argv[2] << "\n";
return 1;
}
std::cout << "cluster " << cluster->getName() << ":\n";
if (cluster->getParent())
std::cout << "\tparent = " << cluster->getParent()->getName() << "\n";
else
std::cout << "\troot cluster.\n";
std::cout << "\tprocs:\n";