class_docstr: A web-based debugger.
code: def get_current_frame_data(self):
      # Constructs the info needed for the web console to display info
      current_frame = self.current_frame()
      filename = current_frame.filename
      lines = current_frame.source
      current_line = None
      if current_frame.offset is not None:
          current_line = current_frame.offset + 1
      if web_pdb_version and web_pdb_version < (1, 4, 4):
          return {
              "filename": filename,
              "listing": "\n".join(lines),
              "curr_line": current_line,
              "total_lines": len(lines),
              "breaklist": [],
          }
      return {
          "dirname": os.path.dirname(os.path.abspath(filename))
          + os.path.sep,
          "filename": os.path.basename(filename),
          "file_listing": "\n".join(lines),
          "current_line": current_line,
          "breakpoints": [],
          "globals": self.get_globals(),
          "locals": self.get_locals(),
      }
  
file_path: jax/jax/_src/debugger/web_debugger.py
imports: from __future__ import annotations
  import os
  from typing import Any
  import weakref
  from jax._src.debugger import cli_debugger
  from jax._src.debugger import core
label_desc: Use image node_id 2 for calling the WebDebugger obj's underlying member method code with example usage: obj.get_current_frame_data() and returns: dict, dict