code: def _get_traces(curr_obj, area, local_dict, target_name):
      from ivy.compiler.utils.VVX import (
          trace_obj,
          get_source_code,
          CallVistior,
      )
  
      traces_list = []
      func = local_dict[curr_obj[2]]
      func_module = inspect.getmodule(func)
      rooted_source = get_source_code(func).strip()
  
      try:
          module_ast = ast.parse(rooted_source)
          visitor = CallVistior(func_module)
          visitor.visit(module_ast)
      except SyntaxError:
          pass
  
      non_lib_objs_name_list = [
          f.__name__ for f in visitor.non_lib_objs
      ]
      rooted_src_list = rooted_source.split("\n")
      max_idx = round(len(rooted_src_list) * area) - 1
  
      for i in range(max_idx, 0, -1):
          if target_name in rooted_src_list[i]:
              curr_obj[3] = rooted_src_list[i]
              curr_obj[1] += i
              break
          elif builtins.any(
              [
                  name in rooted_src_list[i]
                  for name in non_lib_objs_name_list
              ]
          ):
              found = False
              for name in non_lib_objs_name_list:
                  if name in rooted_src_list[i]:
                      traced_data = trace_obj(
                          local_dict[name], (), {}, {}
                      )
                      ret_obj = [
                          traced_data[1],
                          traced_data[2],
                          name,
                          curr_obj[3],
                      ]
                      ret_obj = _get_traces(
                          ret_obj, 1, local_dict, target_name
                      )
                      if ret_obj:
                          traces_list += ret_obj
                          found = True
                          break
              if found:
                  curr_obj[3] = rooted_src_list[i]
                  curr_obj[1] += i
                  break
      return [curr_obj] + traces_list
  
imports: import warnings
  import ivy
  import functools
  from typing import Callable
  import traceback
  import inspect
  import os
  import ast
  import builtins
label_desc: Use image node_id 3 for calling a global function with example usage: _get_traces(curr_obj, area, local_dict, target_name) and returns: unknown