本文整理汇总了C++中Assignment::dump方法的典型用法代码示例。如果您正苦于以下问题:C++ Assignment::dump方法的具体用法?C++ Assignment::dump怎么用?C++ Assignment::dump使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Assignment
的用法示例。
在下文中一共展示了Assignment::dump方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getAssignment
bool CexCachingSolver::getAssignment(const Query& query, Assignment *&result) {
KeyType key;
if (lookupAssignment(query, key, result))
return true;
std::vector<const Array*> objects;
findSymbolicObjects(key.begin(), key.end(), objects);
std::vector< std::vector<unsigned char> > values;
bool hasSolution;
if (!solver->impl->computeInitialValues(query, objects, values,
hasSolution))
return false;
AssignmentCacheWrapper *bindingWrapper;
Assignment *binding;
if (hasSolution) {
binding = new Assignment(objects, values);
// Memoize the result.
std::pair<assignmentsTable_ty::iterator, bool>
res = assignmentsTable.insert(binding);
if (!res.second) {
delete binding;
binding = *res.first;
}
if (DebugCexCacheCheckBinding)
if (!binding->satisfies(key.begin(), key.end())) {
query.dump();
binding->dump();
klee_error("Generated assignment doesn't match query");
}
bindingWrapper = new AssignmentCacheWrapper(binding);
} else {
unsatCore = solver->impl->getUnsatCore();
binding = (Assignment *) 0;
bindingWrapper = new AssignmentCacheWrapper(unsatCore);
}
result = binding;
cache.insert(key, bindingWrapper);
return true;
}