/** @file Copyright (c) 2007, Intel Corporation. All rights reserved.
SPDX-License-Identifier: BSD-2-Clause-Patent **/ #include "Edb.h" /** DebuggerCommand - Scope. @param CommandArg - The argument for this command @param DebuggerPrivate - EBC Debugger private data structure @param ExceptionType - Exception type. @param SystemContext - EBC system context. @retval EFI_DEBUG_CONTINUE - formal return value **/ EFI_DEBUG_STATUS DebuggerScope ( IN CHAR16 *CommandArg, IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext ) { EFI_STATUS Status; UINTN Address; if (CommandArg == NULL) { EDBPrint (L"Scope: invalid Address\n"); return EFI_DEBUG_CONTINUE; } // // Load new scope // Status = Symboltoi (CommandArg, &Address); if (EFI_ERROR (Status)) { if (Status == EFI_NOT_FOUND) { Address = Xtoi(CommandArg); } else { // // Something wrong, let Symboltoi print error info. // EDBPrint (L"Command Argument error!\n"); return EFI_DEBUG_CONTINUE; } } DebuggerPrivate->InstructionScope = Address; EDBPrint (L"Scope: 0x%x\n", DebuggerPrivate->InstructionScope); EdbShowDisasm (DebuggerPrivate, SystemContext); // // Done // return EFI_DEBUG_CONTINUE; } /** DebuggerCommand - List. @param CommandArg - The argument for this command @param DebuggerPrivate - EBC Debugger private data structure @param ExceptionType - Exception type. @param SystemContext - EBC system context. @retval EFI_DEBUG_CONTINUE - formal return value **/ EFI_DEBUG_STATUS DebuggerList ( IN CHAR16 *CommandArg, IN EFI_DEBUGGER_PRIVATE_DATA *DebuggerPrivate, IN EFI_EXCEPTION_TYPE ExceptionType, IN OUT EFI_SYSTEM_CONTEXT SystemContext ) { if (CommandArg == NULL) { EdbShowDisasm (DebuggerPrivate, SystemContext); } else { // // Load new list number // DebuggerPrivate->InstructionNumber = Atoi(CommandArg); EDBPrint (L"List Number: %d\n", DebuggerPrivate->InstructionNumber); EdbShowDisasm (DebuggerPrivate, SystemContext); } // // Done // return EFI_DEBUG_CONTINUE; }