code: def visit_Call(self, node):
          
          if self.depth == 0:
              return node
  
          if self.ignore_exceptions is None:
              ignore_exceptions = ast.Name("None", ast.Load())
  
          else:
              ignore_exceptions = ast.List(self.ignore_exceptions, ast.Load())
  
          catch_exception_type = self.catch_exception \
              if self.catch_exception else "None"
  
          catch_exception = ast.Name(catch_exception_type, ast.Load())
          depth = ast.Num(self.depth - 1 if self.depth > 0 else -1)
  
          debug_node_name = ast.Name("debug", ast.Load())
          call_extra_parameters = [] if IS_PYTHON_3 else [None, None]
          node.func = ast.Call(debug_node_name,
                               [node.func, ignore_exceptions,
                                catch_exception, depth],
                               [], *call_extra_parameters)
  
          return node
docs: Propagate 'debug' wrapper into inner function calls if needed.
  
          Args:
              node (ast.AST): node statement to surround.