| com.pnfsoftware.jeb.core.units.code.android.ir.IDTryData |
dexdec exception handling information, optionally provided by an IR method context.
| Public Methods | |||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|
| abstract boolean |
addProtectionFromBlock(int srcBlkOffset, int dstBlkOffset)
Append the protection of the source block on to the destination block.
| ||||||||||
| abstract boolean |
compareHandlers(int blkOffset1, int blkOffset2)
Compare the protection information of two blocks.
| ||||||||||
| abstract IDTryData |
copy()
Perform a deep-copy this object.
| ||||||||||
| abstract boolean |
copyProtectedBlock(int srcBlkOffset, int dstBlkOffset)
Copy the protection information of a block to another block.
| ||||||||||
| abstract boolean |
copyProtectionFromBlock(int blkOffset, int srcBlkOffset)
This method is deprecated.
use
copyProtectedBlock(int, int) instead, however be careful with the
parameter order, which has been switched: source block first, destination block
second
| ||||||||||
| abstract List<IDExceptionHandler> |
getBlockHandlers(int blkOffset)
Retrieve the handlers protecting the provided block.
| ||||||||||
| abstract Set<Integer> |
getHandledExceptionTypesAt(int handlerOffset)
Retrieve all the exception types handled by the provided handler.
| ||||||||||
| abstract List<IDExceptionHandler> |
getHandlers()
Retrieve a list of all handlers.
| ||||||||||
| abstract List<IDExceptionHandler> | getHandlers(int handlerAddress) | ||||||||||
| abstract List<IDExceptionHandler> |
getHandlersForBlock(int blkOffset)
This method is deprecated.
use
getBlockHandlers(int) instead
| ||||||||||
| abstract List<Integer> |
getProtectedBlocks()
Retrieve a copy of the list of protected blocks.
| ||||||||||
| abstract boolean |
hasProtectedBlocks()
Determine whether this object carries some protection information.
| ||||||||||
| abstract boolean |
isEmpty()
Determine whether this object carries some protection information.
| ||||||||||
| abstract boolean |
isProtectedBlock(int blkOffset)
Determine whether a block is protected.
| ||||||||||
| abstract boolean |
moveProtectedBlock(int srcBlkOffset, int dstBlkOffset)
Move the protection information of a block to another block.
| ||||||||||
| abstract boolean |
protectBlock(int blkOffset, int exTypeIndex, int handlerOffset, int position)
Add a handler to the list of exception handlers protecting the provided block.
| ||||||||||
| abstract boolean |
replaceHandler(int blkOffset, IDExceptionHandler handler, IDExceptionHandler newHandler)
Replace or remove a handler by reference.
| ||||||||||
| abstract void |
setBlockHandlers(int blkOffset, Collection<IDExceptionHandler> handlers)
Set the handlers for the provided block.
| ||||||||||
| abstract boolean |
unprotectBlock(int blkOffset, int handlerOffset, int exTypeIndex)
Remove a specific specific protection for a block.
| ||||||||||
| abstract boolean |
unprotectBlock(int blkOffset, int handlerOffset)
Remove a specific protection for a block.
| ||||||||||
| abstract boolean |
unprotectBlock(int blkOffset)
Unprotect a block.
| ||||||||||
| abstract boolean |
updateHandlerAddress(int handlerAddress, int newAddress)
Update the address of a handler.
| ||||||||||
| abstract void |
updateOffsets(Map<Integer, Integer> oldToNewOffsets)
This method is deprecated.
use
updateTargets(Map) or updateTargets(Map, boolean) instead
| ||||||||||
| abstract int |
updateTargets(Map<Integer, Integer> oldToNewOffsets)
Update the targets of this object.
| ||||||||||
| abstract int |
updateTargets(Map<Integer, Integer> oldToNewOffsets, boolean failOnMissedEntry)
Update the targets of this object.
| ||||||||||
Append the protection of the source block on to the destination block.
| srcBlkOffset | source block |
|---|---|
| dstBlkOffset | destination block |
Compare the protection information of two blocks.
| blkOffset1 | a block |
|---|---|
| blkOffset2 | another block |
Copy the protection information of a block to another block.
| srcBlkOffset | source block |
|---|---|
| dstBlkOffset | destination block |
This method is deprecated.
use copyProtectedBlock(int, int) instead, however be careful with the
parameter order, which has been switched: source block first, destination block
second
Copy the protection information (exception handlers) of a block to another block.
| blkOffset | block to be protected (if it was protected, the original protection information will be overwritten) |
|---|---|
| srcBlkOffset | source block, whose protection information will be copied over to the source block |
Retrieve the handlers protecting the provided block.
| blkOffset | block |
|---|
Retrieve all the exception types handled by the provided handler.
| handlerOffset | offset of the handler block (an entry-point block when an exception is caught) |
|---|
Retrieve a copy of the list of protected blocks.
Determine whether this object carries some protection information. The reverse of
isEmpty().
Determine whether this object carries some protection information. The reverse of
hasProtectedBlocks().
Determine whether a block is protected.
| blkOffset | block |
|---|
Move the protection information of a block to another block. The source block will be left unprotected. The destination block will be protected as the source block was.
| srcBlkOffset | source block |
|---|---|
| dstBlkOffset | destination |
Add a handler to the list of exception handlers protecting the provided block. If no handler protects the block, a new list is created.
| blkOffset | block |
|---|---|
| exTypeIndex | exception type index (-1 means untyped, i.e., all types) |
| handlerOffset | offset of the handler entry-point |
| position | insertion index (negative value is allowed, e.g. -1 means append) |
Replace or remove a handler by reference.
| blkOffset | protected block offset |
|---|---|
| handler | mandatory handler |
| newHandler | new handler (or null to remove the handler) |
Set the handlers for the provided block. The list of provided handlers will be copied.
| blkOffset | block |
|---|---|
| handlers | a list of handlers; empty to unprotect the block |
Remove a specific specific protection for a block.
| blkOffset | block |
|---|---|
| handlerOffset | offset of the handler |
| exTypeIndex | expected handled exception type |
Remove a specific protection for a block. All handling leading to the provided handler offset will be removed.
| blkOffset | block |
|---|---|
| handlerOffset | offset of the handler |
Unprotect a block.
| blkOffset | block |
|---|
Update the address of a handler.
Update the targets of this object. All block offsets (protected blocks, handler blocks) will be updated.
| oldToNewOffsets | a map of old block offsets to new block offsets |
|---|
Update the targets of this object. All block offsets (protected blocks, handler blocks) will be updated.
| oldToNewOffsets | a map of old block offsets to new block offsets |
|---|---|
| failOnMissedEntry | if true, the method will raise if a (current) branch target cannot be mapped to a new target (i.e., if there is no entry for a branch target in the map) |