Esempio n. 1
0
Dwarf_Off DieHolder::get_CU_offset(void)
{
  Dwarf_Off cu_offset = 0;
  Dwarf_Error err = NULL;

  CHECK_DWERR(dwarf_CU_dieoffset_given_die(m_die, &cu_offset, &err), err,
              "cannot get CU DIE offset");

  return cu_offset;
}
Esempio n. 2
0
File: rdwarf.c Progetto: kubo/rdwarf
static VALUE rdwarf_die_at(VALUE self, VALUE offset)
{
    rdwarf_t *rd = GetRDwarf(self);
    Dwarf_Die die;
    Dwarf_Off cu_off;
    Dwarf_Error err;
    VALUE cu;

    chkerr1(dwarf_offdie(rd->shared_data->dbg, NUM2LL(offset), &die, &err), &err, self);
    chkerr1(dwarf_CU_dieoffset_given_die(die, &cu_off, &err), &err, self);

    rdwarf_compile_units(self);
    cu = rb_hash_aref(rd->shared_data->off2die, LL2NUM(cu_off));
    if (NIL_P(cu)) {
        rb_raise(rd_eError, "Cannot find CU");
    }
    return rd_die_new(rd->shared_data, self, cu, die);
}