|
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 |