本文整理汇总了C++中AsmFormatPluginHelper::set_section方法的典型用法代码示例。如果您正苦于以下问题:C++ AsmFormatPluginHelper::set_section方法的具体用法?C++ AsmFormatPluginHelper::set_section怎么用?C++ AsmFormatPluginHelper::set_section使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AsmFormatPluginHelper
的用法示例。
在下文中一共展示了AsmFormatPluginHelper::set_section方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _flat_decode
/* flat_decode */
static int _flat_decode(AsmFormatPlugin * format, int raw)
{
AsmFormatPluginHelper * helper = format->helper;
off_t offset;
if((offset = helper->seek(helper->format, 0, SEEK_END)) >= 0
&& helper->set_section(helper->format, 0, 0, ".text", 0,
offset, 0) != NULL)
return 0;
return -1;
}
示例2: sizeof
static int _elf_decode32(AsmFormatPlugin * format, int raw)
{
AsmFormatPluginHelper * helper = format->helper;
Elf32_Ehdr ehdr;
Elf32_Shdr * shdr = NULL;
Elf32_Addr base = 0x0;
char * shstrtab = NULL;
size_t shstrtab_cnt = 0;
size_t i;
#ifdef DEBUG
fprintf(stderr, "DEBUG: %s() \"%s\"\n", __func__,
helper->get_filename(helper->format));
#endif
if(helper->seek(helper->format, 0, SEEK_SET) != 0
|| helper->read(helper->format, &ehdr, sizeof(ehdr))
!= sizeof(ehdr))
return -1;
if(ehdr.e_ident[EI_DATA] != elf_arch_native->endian)
_swap_32_ehdr(&ehdr);
if(_decode32_shdr(format, &ehdr, &shdr) != 0)
return -1;
if(_decode32_addr(format, &ehdr, &base) != 0
|| _decode32_strtab(format, shdr, ehdr.e_shnum,
ehdr.e_shstrndx, &shstrtab, &shstrtab_cnt)
!= 0)
{
free(shdr);
return -1;
}
for(i = 0; i < ehdr.e_shnum; i++)
if(shdr[i].sh_type == SHT_SYMTAB)
{
/* XXX ignore errors? */
_decode32_symtab(format, &ehdr, shdr, ehdr.e_shnum, i);
break;
}
for(i = 0; i < ehdr.e_shnum; i++)
{
if(shdr[i].sh_name >= shstrtab_cnt)
continue;
if((raw || (shdr[i].sh_type == SHT_PROGBITS && shdr[i].sh_flags
& SHF_EXECINSTR))
&& helper->set_section(helper->format, i,
&shstrtab[shdr[i].sh_name],
shdr[i].sh_offset, shdr[i].sh_size,
base + shdr[i].sh_offset) < 0)
break;
}
free(shstrtab);
free(shdr);
return (i == ehdr.e_shnum) ? 0 : -1;
}
示例3: _decode_map_code
static int _decode_map_code(AsmFormatPlugin * format, size_t id, off_t offset,
size_t size)
{
AsmFormatPluginHelper * helper = format->helper;
#ifdef DEBUG
fprintf(stderr, "DEBUG: %s(%lu, %ld, %lu)\n", __func__, id, offset,
size);
#endif
return (helper->set_section(helper->format, id, 0,
".text", offset, size, 0) != NULL) ? 0 : -1;
}