This PR fixes bugs in the execution paths generator.
Retsub of a subroutine is connected to the next instruction of callsub instructions calling the subroutine. During traversal, all of the blocks in retsub next are considered valid execution paths. When there will be only one valid next block at runtime.
Identification of loops
Loops are identified by checking if the block is already part of the execution path. Is considered a loop if it was executed before. This check does not consider the call context.
As a result, during traversal, it incorrectly classifies a sequence of calls to the same subroutine as a loop.
Tealer incorrectly constructs the CFG when a callsub instruction is immediately followed by another callsub instruction.
This PR adds initial basic support for --debug option and logging.
This PR fixes bugs in the execution paths generator.
This PR adds initial basic support for
--debug
option and logging.