| # Copyright 2026 The Fuchsia Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| from typing import Any |
| |
| from cli.commands.base import BaseCommand |
| |
| |
| class Command(BaseCommand): |
| COMMAND_NAME = "variables" |
| |
| @staticmethod |
| def register_cli(subparsers: Any) -> None: |
| variables_parser = subparsers.add_parser( |
| Command.COMMAND_NAME, |
| aliases=["locals"], |
| help="Get variables of a stack frame.", |
| description=( |
| "Get variables (locals and arguments) of a stack frame.\n\n" |
| "If the target thread is running, it will be automatically paused to " |
| "retrieve the stack trace. Note that the stack frames (and their indices) " |
| "may have changed if the thread had to be paused." |
| ), |
| ) |
| variables_parser.add_argument( |
| "thread_id", type=int, help="Thread ID to query" |
| ) |
| variables_parser.add_argument( |
| "--frame-index", |
| type=int, |
| default=0, |
| help="Frame index within the stacktrace (defaults to 0)", |
| ) |