| IDA SDK

Public Attributes | Public Member Functions | List of all members
relobj_t Struct Reference

## Detailed Description

Relocatable object.

Inherits bytevec_t.

## Public Attributes
ea_t | base
| current base
reloc_info_t | ri
| relocation info

## Public Member Functions
bool | relocate (ea_t ea, bool mf)
| mf=1:big endian
Public Member Functions inherited from bytevec_t
| bytevec_t ()
| Constructor.
| bytevec_t (const void *buf, size_t sz)
| Constructor - fill bytevec with 'sz' bytes from 'buf'.
bytevec_t & | append (const void *buf, size_t sz)
| Append bytes to the bytevec. More...
void | pack_db (uint8 x)
| Pack a byte and append the result to the bytevec.
void | pack_dw (uint16 x)
| Pack a word and append the result to the bytevec.
void | pack_dd (uint32 x)
| Pack a dword and append the result to the bytevec.
void | pack_dq (uint64 x)
| Pack a quadword and append the result to the bytevec.
void | pack_ea (ea_t x)
| Pack an ea value and append the result to the bytevec.
void | pack_ea64 (ea64_t ea)
| Pack an ea value (64bits) and append the result to the bytevec We pass ea_t as a 64-bit quantity (to be able to debug 32-bit programs with ida64) adding 1 to the address ensures that BADADDR is passed correctly. More...
void | pack_ds (const char *x)
| Pack a string (length+contents) and append the result to the bytevec.
void | pack_str (const char *str)
| Pack a string (zero-terminated) and append the result to the bytevec.
void | pack_str (const qstring &s)
| Pack a string (zero-terminated) and append the result to the bytevec.
void | pack_buf (const void *buf, size_t len)
| Pack an object of size 'len' and append the result to the bytevec.
void | pack_bytevec (const bytevec_t &b)
| Pack an object of size 'len' and append the result to the bytevec.
void | pack_eavec (ea_t ea, const eavec_t &vec)
| Pack an eavec and append the result to the bytevec. More...
bytevec_t & | growfill (size_t sz, uchar filler=0)
| Grow the bytevec and fill with a value. More...
void | inject (void *buf, size_t len)
| See qvector::inject(T *, size_t)
void | tohex (qstring *out, bool upper_case=true) const
| Append the hexadecimal representation of bytes to the string.
qstring | tohex (bool upper_case=true) const
| Produce a hexadecimal representation of bytes.
bool | fromhex (const qstring &str)
| Initialize from a hexadecimal string It returns 'false' if the string is invalid.
bool | test_bit (size_t bit) const
| Is the specified bit set in the bytevec?
void | set_bit (size_t bit)
| Set the specified bit.
void | clear_bit (size_t bit)
| Clear the specified bit.
void | set_all_bits (size_t nbits)
| See set_all_bits(uchar *, size_t)
void | clear_all_bits (size_t nbits)
| See clear_all_bits(uchar *, size_t)
bool | all_zeros () const
| Are all bits cleared?
void | set_bits (const bytevec_t &b)
| For each bit that is set in 'b', set the corresponding bit in this bytevec.
void | set_bits (size_t low, size_t high)
| Set each bit between [low, high)
void | clear_bits (const bytevec_t &b)
| For each bit that is set in 'b', the clear the corresponding bit in this bytevec.
void | clear_bits (size_t low, size_t high)
| Clear each bit between [low, high)
Public Member Functions inherited from qvector< uchar >
| qvector (void)
| Constructor.
| qvector (const qvector< uchar > &x)
| Constructor - creates a new qvector identical to 'x'.
| qvector (qvector< uchar > &&x) noexcept
| Move constructor.
| ~qvector (void)
| Destructor.
void | push_back (const uchar &x)
| Append a new element to the end the qvector.
void | push_back (uchar &&x)
| Append a new element to the end the qvector with a move semantics.
uchar & | push_back (void)
| Append a new empty element to the end of the qvector. More...
void | pop_back (void)
| Remove the last element in the qvector.
size_t | size (void) const
| Get the number of elements in the qvector.
bool | empty (void) const
| Does the qvector have 0 elements?
const uchar & | operator[] (size_t _idx) const
| Allows use of typical c-style array indexing for qvectors.
uchar & | operator[] (size_t _idx)
| Allows use of typical c-style array indexing for qvectors.
const uchar & | at (size_t _idx) const
| Get element at index '_idx'.
uchar & | at (size_t _idx)
| Get element at index '_idx'.
const uchar & | front (void) const
| Get the first element in the qvector.
uchar & | front (void)
| Get the first element in the qvector.
const uchar & | back (void) const
| Get the last element in the qvector.
uchar & | back (void)
| Get the last element in the qvector.
void | qclear (void)
| Destroy all elements but do not free memory.
void | clear (void)
| Destroy all elements and free memory.
qvector< uchar > & | operator= (const qvector< uchar > &x)
| Allow assignment of one qvector to another using '='.
qvector< uchar > & | operator= (qvector< uchar > &&x) noexcept
| Move assignment operator.
void | resize (size_t _newsize, const uchar &x)
| Resize to the given size. More...
void | resize (size_t _newsize)
| Same as resize(size_t, const T &), but extra space is filled with empty elements.
void | resize_noinit (size_t _newsize)
void | grow (const uchar &x=uchar())
| Add an element to the end of the qvector, which will be a new T() if x is not given.
size_t | capacity (void) const
| Get the number of elements that this qvector can contain - not the same as the number of elements currently in the qvector (size())
void | reserve (size_t cnt)
| Increase the capacity of the qvector. More...
void | truncate (void)
| Shrink the capacity down to the current number of elements.
void | swap (qvector< uchar > &r) noexcept
| Replace all attributes of this qvector with that of 'r', and vice versa. More...
uchar * | extract (void)
| Empty the qvector and return a pointer to it's contents. More...
void | inject (uchar *s, size_t len)
| Populate the qvector with dynamic memory. More...
bool | operator== (const qvector< uchar > &r) const
| Allow ability to test the equality of two qvectors using '=='.
bool | operator!= (const qvector< uchar > &r) const
| Allow ability to test equality of two qvectors using '!='.
iterator | begin (void)
| Get an iterator that points to the first element in the qvector.
const_iterator | begin (void) const
| Get a const iterator that points to the first element in the qvector.
iterator | end (void)
| Get an iterator that points to the end of the qvector (NOT the last element)
const_iterator | end (void) const
| Get a const iterator that points to the end of the qvector (NOT the last element)
iterator | insert (iterator it, const uchar &x)
| Insert an element into the qvector at a specified position. More...
iterator | insert (iterator it, uchar &&x)
| Insert an element into the qvector with a move semantics.
iterator | insert (iterator it, it2 first, it2 last)
| Insert a several elements to the qvector at a specified position. More...
iterator | erase (iterator it)
| Remove an element from the qvector. More...
iterator | erase (iterator first, iterator last)
| Remove a subset of the qvector. More...
iterator | find (const uchar &x)
| Find an element in the qvector. More...
const_iterator | find (const uchar &x) const
| Find an element in the qvector. More...
ssize_t | index (const uchar &x) const
| Find index of the specified value or return -1.
void | add (const uchar &x)
| Add an element to the end of the qvector.
void | add (uchar &&x)
bool | has (const uchar &x) const
| Does the qvector contain x?
bool | add_unique (const uchar &x)
| Add an element to the end of the qvector - only if it isn't already present. More...
bool | del (const uchar &x)
| Find an element and remove it. More...
const char * | dstr (void) const

## Additional Inherited Members
Public Types inherited from qvector< uchar >
typedef uchar | value_type
| the type of objects contained in this qvector
typedef uchar * | iterator
typedef const uchar * | const_iterator

The documentation for this struct was generated from the following file:

- pro.h