| //===-- CommandObjectLanguage.cpp -----------------------------------------===// |
| // |
| // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
| // See https://llvm.org/LICENSE.txt for license information. |
| // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
| // |
| //===----------------------------------------------------------------------===// |
| |
| #include "CommandObjectLanguage.h" |
| |
| |
| |
| #include "lldb/Target/LanguageRuntime.h" |
| |
| using namespace lldb; |
| using namespace lldb_private; |
| |
| CommandObjectLanguage::CommandObjectLanguage(CommandInterpreter &interpreter) |
| : CommandObjectMultiword( |
| interpreter, "language", "Commands specific to a source language.", |
| "language <language-name> <subcommand> [<subcommand-options>]") { |
| // Let the LanguageRuntime populates this command with subcommands |
| LanguageRuntime::InitializeCommands(this); |
| SetHelpLong( |
| R"( |
| Language specific subcommands may be used directly (without the `language |
| <language-name>` prefix), when stopped on a frame written in that language. For |
| example, from a C++ frame, users may run `demangle` directly, instead of |
| `language cplusplus demangle`. |
| |
| Language specific subcommands are only available when the command name cannot be |
| misinterpreted. Take the `demangle` command for example, if a Python command |
| named `demangle-tree` were loaded, then the invocation `demangle` would run |
| `demangle-tree`, not `language cplusplus demangle`. |
| )"); |
| } |
| |
| CommandObjectLanguage::~CommandObjectLanguage() = default; |