IDAPython 9.0
|
Architecture independent exception handling info. Try blocks have the following general properties: * A try block specifies a possibly fragmented guarded code region. * Each try block has always at least one catch/except block description * Each catch block contains its boundaries and a filter. * Additionally a catch block can hold sp adjustment and the offset to the exception object offset (C++). * Try blocks can be nested. Nesting is automatically calculated at the retrieval time. * There may be (nested) multiple try blocks starting at the same address. See examples in tests/input/src/eh_tests.
Classes | |
class | catch_t |
class | catchvec_t |
class | seh_t |
class | try_handler_t |
class | tryblk_t |
class | tryblks_t |
Functions | |
'size_t' | get_tryblks ('tryblks_t' tbv, 'range_t' range) |
None | del_tryblks ('range_t' range) |
int | add_tryblk ('tryblk_t' tb) |
ida_idaapi.ea_t | find_syseh (ida_idaapi.ea_t ea) |
bool | is_ea_tryblks (ida_idaapi.ea_t ea, int flags) |
Variables | |
TBERR_OK = _ida_tryblks.TBERR_OK | |
TBERR_START = _ida_tryblks.TBERR_START | |
TBERR_END = _ida_tryblks.TBERR_END | |
TBERR_ORDER = _ida_tryblks.TBERR_ORDER | |
TBERR_EMPTY = _ida_tryblks.TBERR_EMPTY | |
TBERR_KIND = _ida_tryblks.TBERR_KIND | |
TBERR_NO_CATCHES = _ida_tryblks.TBERR_NO_CATCHES | |
TBERR_INTERSECT = _ida_tryblks.TBERR_INTERSECT | |
TBEA_TRY = _ida_tryblks.TBEA_TRY | |
TBEA_CATCH = _ida_tryblks.TBEA_CATCH | |
TBEA_SEHTRY = _ida_tryblks.TBEA_SEHTRY | |
TBEA_SEHLPAD = _ida_tryblks.TBEA_SEHLPAD | |
TBEA_SEHFILT = _ida_tryblks.TBEA_SEHFILT | |
TBEA_ANY = _ida_tryblks.TBEA_ANY | |
TBEA_FALLTHRU = _ida_tryblks.TBEA_FALLTHRU | |
int add_tryblk | ( | 'tryblk_t' | tb | ) |
Add one try block information. @param tb: try block to add. @returns error code; 0 means good
None del_tryblks | ( | 'range_t' | range | ) |
Delete try block information in the specified range. @param range: the range to be cleared
ida_idaapi.ea_t find_syseh | ( | ida_idaapi.ea_t | ea | ) |
Find the start address of the system eh region including the argument. @param ea: search address @returns start address of surrounding tryblk, otherwise BADADDR
'size_t' get_tryblks | ( | 'tryblks_t' | tbv, |
'range_t' | range ) |
------------------------------------------------------------------------- Retrieve try block information from the specified address range. Try blocks are sorted by starting address and their nest levels calculated. @param tbv: output buffer; may be nullptr @param range: address range to change @returns number of found try blocks
bool is_ea_tryblks | ( | ida_idaapi.ea_t | ea, |
int | flags ) |
Check if the given address ea is part of tryblks description. @param ea: address to check @param flags: combination of flags for is_ea_tryblks()
TBEA_ANY = _ida_tryblks.TBEA_ANY |
TBEA_CATCH = _ida_tryblks.TBEA_CATCH |
TBEA_FALLTHRU = _ida_tryblks.TBEA_FALLTHRU |
TBEA_SEHFILT = _ida_tryblks.TBEA_SEHFILT |
TBEA_SEHLPAD = _ida_tryblks.TBEA_SEHLPAD |
TBEA_SEHTRY = _ida_tryblks.TBEA_SEHTRY |
TBEA_TRY = _ida_tryblks.TBEA_TRY |
TBERR_EMPTY = _ida_tryblks.TBERR_EMPTY |
TBERR_END = _ida_tryblks.TBERR_END |
TBERR_INTERSECT = _ida_tryblks.TBERR_INTERSECT |
TBERR_KIND = _ida_tryblks.TBERR_KIND |
TBERR_NO_CATCHES = _ida_tryblks.TBERR_NO_CATCHES |
TBERR_OK = _ida_tryblks.TBERR_OK |
TBERR_ORDER = _ida_tryblks.TBERR_ORDER |
TBERR_START = _ida_tryblks.TBERR_START |