code: def debug_info(
      traced_for: str,
      fun: Callable,
      args: tuple[Any],
      kwargs: dict[str, Any],
      static_argnums: tuple[int, ...],
      static_argnames: tuple[str, ...],
  ) -> TracingDebugInfo | None:
      """Try to build trace-time debug info for fun when applied to args/kwargs."""
      src = fun_sourceinfo(fun)
      arg_names = _arg_names(
          fun, args, kwargs, static_argnums, static_argnames
      )
      if src is None or arg_names is None:
          return None
      return TracingDebugInfo(traced_for, src, arg_names, None)
  
imports: from __future__ import annotations
  from collections.abc import Iterable, Sequence
  import inspect
  import operator
  from functools import partial
  from typing import Any, Callable
  import warnings
  import numpy
  from jax._src import core
  from jax._src import dtypes
  from jax._src.abstract_arrays import numpy_scalar_types
  from jax._src.core import ShapedArray
  from jax._src.tree_util import PyTreeDef, tree_flatten, tree_unflatten, tree_map, tree_structure, treedef_children, generate_key_paths, keystr, broadcast_prefix, prefix_errors
  from jax._src.tree_util import _replace_nones
  from jax._src import linear_util
  from jax._src.linear_util import TracingDebugInfo
  from jax._src.util import safe_map, WrapKwArgs, Hashable, HashableFunction, Unhashable
  from jax._src import traceback_util
label_desc: Use image node_id 36 for calling a global function with example usage: debug_info(traced_for, fun, args, kwargs, static_argnums, static_argnames) and returns: TracingDebugInfo, None