'Post job handling: print debugging information regarding the current job.
:param CFGJob job:      The current CFGJob instance.
:param list successors: All successors of the analysis job.
:return: None'

def _post_handle_job_debug(self, job, successors):

    sim_successors = job.sim_successors
    call_stack_suffix = job.call_stack_suffix
    extra_info = job.extra_info
    successor_status = job.successor_status
    func = self.project.loader.find_symbol(job.addr)
    obj = self.project.loader.find_object_containing(job.addr)
    function_name = (func.name if (func is not None) else None)
    module_name = (obj.provides if (obj is not None) else None)
    depth_str = (('(D:%s)' % self.get_node(job.block_id).depth) if (self.get_node(job.block_id).depth is not None) else '')
    l.debug('%s    [%#x%s    |    %s]', sim_successors.description, sim_successors.addr, depth_str, '->'.join([hex(i) for i in call_stack_suffix if (i is not None)]))
    l.debug('(Function    %s    of    binary    %s)', function_name, module_name)
    l.debug('|                Call    jump:    %s', (extra_info['is_call_jump'] if (extra_info is not None) else 'unknown'))
    for suc in successors:
        jumpkind = suc.history.jumpkind
        if (jumpkind == 'Ijk_FakeRet'):
            exit_type_str = 'Simulated    Ret'
        else:
            exit_type_str = '-'
        try:
            l.debug('|                target:    %#x    %s    [%s]    %s', suc.se.exactly_int(suc.ip), successor_status[suc], exit_type_str, jumpkind)
        except (SimValueError, SimSolverModeError):
            l.debug('|                target    cannot    be    concretized.    %s    [%s]    %s', successor_status[suc], exit_type_str, jumpkind)
    l.debug('%d    exits    remaining,    %d    exits    pending.', len(self._job_info_queue), len(self._pending_jobs))
    l.debug('%d    unique    basic    blocks    are    analyzed    so    far.', len(self._analyzed_addrs))
