code: def create_local_debug_executor(
      graph_json_str, mod, device, dump_root=None
  ):
      """Create a local debug runtime driving execution on the remote CPU device given.
  
      Parameters
      ----------
      graph_json_str : str
          A string containing the graph representation.
  
      mod : tvm.runtime.Module
          The remote module containing functions in graph_json_str.
  
      device : tvm.runtime.Device
          The remote CPU execution device.
  
      dump_root : Optional[str]
          If given, passed as dump_root= to GraphModuleDebug.
  
      Returns
      -------
      tvm.contrib.GraphExecutor :
           A local graph executor instance that executes on the remote device.
      """
      device_type_id = [device.device_type, device.device_id]
      fcreate = get_global_func("tvm.graph_executor_debug.create")
      return debug_executor.GraphModuleDebug(
          fcreate(
              graph_json_str,
              mod,
              lookup_remote_linked_param,
              *device_type_id,
          ),
          [device],
          graph_json_str,
          dump_root=dump_root,
      )
  
imports: import json
  import logging
  import sys
  import os
  import pathlib
  import shutil
  from typing import Union
  from tvm.runtime.executor.aot_executor import AotModule
  from ..error import register_error
  from .._ffi import get_global_func, register_func
  from ..contrib import graph_executor
  from ..contrib import utils
  from ..contrib.debugger import debug_executor
  from ..rpc import RPCSession
  from .None import project
  from .transport import IoTimeoutError
  from .transport import TransportLogger
label_desc: Use image node_id 3 for calling a global function with example usage: create_local_debug_executor(graph_json_str, mod, device, dump_root) and returns: debug_executor