本文整理汇总了C++中SgAsmGenericSection::write方法的典型用法代码示例。如果您正苦于以下问题:C++ SgAsmGenericSection::write方法的具体用法?C++ SgAsmGenericSection::write怎么用?C++ SgAsmGenericSection::write使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SgAsmGenericSection
的用法示例。
在下文中一共展示了SgAsmGenericSection::write方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1:
/** Write string table back to disk. Free space is zeroed out; holes are left as they are. */
void
SgAsmElfStrtab::unparse(std::ostream &f) const
{
SgAsmGenericSection *container = get_container();
/* Write strings with NUL termination. Shared strings will be written more than once, but that's OK. */
for (size_t i=0; i<p_storage_list.size(); i++) {
SgAsmStringStorage *storage = p_storage_list[i];
ROSE_ASSERT(storage->get_offset()!=SgAsmGenericString::unallocated);
rose_addr_t at = container->write(f, storage->get_offset(), storage->get_string());
container->write(f, at, '\0');
}
/* Fill free areas with zero */
BOOST_FOREACH (const AddressInterval &interval, get_freelist().intervals())
container->write(f, interval.least(), std::string(interval.size(), '\0'));
}
示例2:
/* Write string table back to disk. Free space is zeroed out; holes are left as they are. */
void
SgAsmCoffStrtab::unparse(std::ostream &f) const
{
SgAsmGenericSection *container = get_container();
/* Write length coded strings. Shared strings will be written more than once, but that's OK. */
for (size_t i=0; i<p_storage_list.size(); i++) {
SgAsmStringStorage *storage = p_storage_list[i];
ROSE_ASSERT(storage->get_offset()!=SgAsmGenericString::unallocated);
rose_addr_t at = container->write(f, storage->get_offset(), storage->get_string());
container->write(f, at, '\0');
}
/* Fill free areas with zero */
for (ExtentMap::const_iterator i=get_freelist().begin(); i!=get_freelist().end(); ++i) {
container->write(f, i->first.first(), std::string(i->first.size(), '\0'));
}
}