diff options
Diffstat (limited to 'source/components/debugger')
-rw-r--r-- | source/components/debugger/dbcmds.c | 5 | ||||
-rw-r--r-- | source/components/debugger/dbconvert.c | 4 | ||||
-rw-r--r-- | source/components/debugger/dbdisply.c | 14 | ||||
-rw-r--r-- | source/components/debugger/dbexec.c | 2 | ||||
-rw-r--r-- | source/components/debugger/dbhistry.c | 38 | ||||
-rw-r--r-- | source/components/debugger/dbinput.c | 59 | ||||
-rw-r--r-- | source/components/debugger/dbmethod.c | 6 | ||||
-rw-r--r-- | source/components/debugger/dbnames.c | 2 | ||||
-rw-r--r-- | source/components/debugger/dbstats.c | 4 | ||||
-rw-r--r-- | source/components/debugger/dbutils.c | 8 | ||||
-rw-r--r-- | source/components/debugger/dbxface.c | 18 |
11 files changed, 132 insertions, 28 deletions
diff --git a/source/components/debugger/dbcmds.c b/source/components/debugger/dbcmds.c index 3a1afa2..5700441 100644 --- a/source/components/debugger/dbcmds.c +++ b/source/components/debugger/dbcmds.c @@ -361,22 +361,27 @@ AcpiDbDisplayTableInfo ( switch (TableDesc->Flags & ACPI_TABLE_ORIGIN_MASK) { case ACPI_TABLE_ORIGIN_UNKNOWN: + AcpiOsPrintf ("Unknown "); break; case ACPI_TABLE_ORIGIN_MAPPED: + AcpiOsPrintf ("Mapped "); break; case ACPI_TABLE_ORIGIN_ALLOCATED: + AcpiOsPrintf ("Allocated "); break; case ACPI_TABLE_ORIGIN_OVERRIDE: + AcpiOsPrintf ("Override "); break; default: + AcpiOsPrintf ("INVALID "); break; } diff --git a/source/components/debugger/dbconvert.c b/source/components/debugger/dbconvert.c index e30aba0..098a9719 100644 --- a/source/components/debugger/dbconvert.c +++ b/source/components/debugger/dbconvert.c @@ -304,20 +304,24 @@ AcpiDbConvertToObject ( switch (Type) { case ACPI_TYPE_STRING: + Object->Type = ACPI_TYPE_STRING; Object->String.Pointer = String; Object->String.Length = (UINT32) ACPI_STRLEN (String); break; case ACPI_TYPE_BUFFER: + Status = AcpiDbConvertToBuffer (String, Object); break; case ACPI_TYPE_PACKAGE: + Status = AcpiDbConvertToPackage (String, Object); break; default: + Object->Type = ACPI_TYPE_INTEGER; Status = AcpiUtStrtoul64 (String, 16, &Object->Integer.Value); break; diff --git a/source/components/debugger/dbdisply.c b/source/components/debugger/dbdisply.c index 9fc9cf5..c453d57 100644 --- a/source/components/debugger/dbdisply.c +++ b/source/components/debugger/dbdisply.c @@ -265,7 +265,6 @@ AcpiDbDecodeAndDisplayObject ( Node = ObjPtr; goto DumpNode; - case ACPI_DESC_TYPE_OPERAND: /* This is a ACPI OPERAND OBJECT */ @@ -282,7 +281,6 @@ AcpiDbDecodeAndDisplayObject ( AcpiExDumpObjectDescriptor (ObjPtr, 1); break; - case ACPI_DESC_TYPE_PARSER: /* This is a Parser Op object */ @@ -299,7 +297,6 @@ AcpiDbDecodeAndDisplayObject ( AcpiDbDumpParserDescriptor ((ACPI_PARSE_OBJECT *) ObjPtr); break; - default: /* Is not a recognizeable object */ @@ -446,6 +443,7 @@ AcpiDbDisplayMethodInfo ( switch (OpInfo->Class) { case AML_CLASS_ARGUMENT: + if (CountRemaining) { NumRemainingOperands++; @@ -455,11 +453,13 @@ AcpiDbDisplayMethodInfo ( break; case AML_CLASS_UNKNOWN: + /* Bad opcode or ASCII character */ continue; default: + if (CountRemaining) { NumRemainingOperators++; @@ -931,15 +931,21 @@ AcpiDbDisplayGpes ( switch (GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK) { case ACPI_GPE_DISPATCH_NONE: + AcpiOsPrintf ("NotUsed"); break; + case ACPI_GPE_DISPATCH_METHOD: + AcpiOsPrintf ("Method"); break; case ACPI_GPE_DISPATCH_HANDLER: + AcpiOsPrintf ("Handler"); break; + case ACPI_GPE_DISPATCH_NOTIFY: + Count = 0; Notify = GpeEventInfo->Dispatch.NotifyList; while (Notify) @@ -949,7 +955,9 @@ AcpiDbDisplayGpes ( } AcpiOsPrintf ("Implicit Notify on %u devices", Count); break; + default: + AcpiOsPrintf ("UNKNOWN: %X", GpeEventInfo->Flags & ACPI_GPE_DISPATCH_MASK); break; diff --git a/source/components/debugger/dbexec.c b/source/components/debugger/dbexec.c index 3b5f651..dff3c79 100644 --- a/source/components/debugger/dbexec.c +++ b/source/components/debugger/dbexec.c @@ -109,6 +109,7 @@ AcpiDbDeleteObjects ( switch (Objects[i].Type) { case ACPI_TYPE_BUFFER: + ACPI_FREE (Objects[i].Buffer.Pointer); break; @@ -125,6 +126,7 @@ AcpiDbDeleteObjects ( break; default: + break; } } diff --git a/source/components/debugger/dbhistry.c b/source/components/debugger/dbhistry.c index c3933d3..ff11604 100644 --- a/source/components/debugger/dbhistry.c +++ b/source/components/debugger/dbhistry.c @@ -54,12 +54,12 @@ #define HI_NO_HISTORY 0 #define HI_RECORD_HISTORY 1 -#define HISTORY_SIZE 20 +#define HISTORY_SIZE 40 typedef struct HistoryInfo { - char Command[80]; + char *Command; UINT32 CmdNum; } HISTORY_INFO; @@ -88,13 +88,35 @@ void AcpiDbAddToHistory ( char *CommandLine) { + UINT16 CmdLen; + UINT16 BufferLen; /* Put command into the next available slot */ + CmdLen = (UINT16) ACPI_STRLEN (CommandLine); + if (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command != NULL) + { + BufferLen = (UINT16) ACPI_STRLEN ( + AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command); + if (CmdLen > BufferLen) + { + AcpiOsFree (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex]. + Command); + AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command = + AcpiOsAllocate (CmdLen + 1); + } + } + else + { + AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command = + AcpiOsAllocate (CmdLen + 1); + } + ACPI_STRCPY (AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].Command, CommandLine); - AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].CmdNum = AcpiGbl_NextCmdNum; + AcpiGbl_HistoryBuffer[AcpiGbl_NextHistoryIndex].CmdNum = + AcpiGbl_NextCmdNum; /* Adjust indexes */ @@ -148,8 +170,12 @@ AcpiDbDisplayHistory ( for (i = 0; i < AcpiGbl_NumHistory; i++) { - AcpiOsPrintf ("%ld %s\n", AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum, - AcpiGbl_HistoryBuffer[HistoryIndex].Command); + if (AcpiGbl_HistoryBuffer[HistoryIndex].Command) + { + AcpiOsPrintf ("%3ld %s\n", + AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum, + AcpiGbl_HistoryBuffer[HistoryIndex].Command); + } HistoryIndex++; if (HistoryIndex >= HISTORY_SIZE) @@ -199,7 +225,7 @@ AcpiDbGetFromHistory ( { if (AcpiGbl_HistoryBuffer[HistoryIndex].CmdNum == CmdNum) { - /* Found the commnad, return it */ + /* Found the command, return it */ return (AcpiGbl_HistoryBuffer[HistoryIndex].Command); } diff --git a/source/components/debugger/dbinput.c b/source/components/debugger/dbinput.c index d891872..1e3ebff 100644 --- a/source/components/debugger/dbinput.c +++ b/source/components/debugger/dbinput.c @@ -753,6 +753,7 @@ AcpiDbCommandDispatch ( switch (CommandIndex) { case CMD_NULL: + if (Op) { return (AE_OK); @@ -768,41 +769,50 @@ AcpiDbCommandDispatch ( case CMD_ARGS: case CMD_ARGUMENTS: + AcpiDbDisplayArguments (); break; case CMD_BATCH: + AcpiDbBatchExecute (AcpiGbl_DbArgs[1]); break; case CMD_BREAKPOINT: + AcpiDbSetMethodBreakpoint (AcpiGbl_DbArgs[1], WalkState, Op); break; case CMD_BUSINFO: + AcpiDbGetBusInfo (); break; case CMD_CALL: + AcpiDbSetMethodCallBreakpoint (Op); Status = AE_OK; break; case CMD_CLOSE: + AcpiDbCloseDebugFile (); break; case CMD_DEBUG: + AcpiDbExecute (AcpiGbl_DbArgs[1], &AcpiGbl_DbArgs[2], &AcpiGbl_DbArgTypes[2], EX_SINGLE_STEP); break; case CMD_DISASSEMBLE: case CMD_DISASM: + (void) AcpiDbDisassembleMethod (AcpiGbl_DbArgs[1]); break; case CMD_DUMP: + AcpiDbDecodeAndDisplayObject (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; @@ -819,45 +829,55 @@ AcpiDbCommandDispatch ( break; case CMD_EVENT: + AcpiOsPrintf ("Event command not implemented\n"); break; case CMD_EVALUATE: case CMD_EXECUTE: + AcpiDbExecute (AcpiGbl_DbArgs[1], &AcpiGbl_DbArgs[2], &AcpiGbl_DbArgTypes[2], EX_NO_SINGLE_STEP); break; case CMD_FIND: + Status = AcpiDbFindNameInNamespace (AcpiGbl_DbArgs[1]); break; case CMD_GO: + AcpiGbl_CmSingleStep = FALSE; return (AE_OK); case CMD_GPE: + AcpiDbGenerateGpe (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_GPES: + AcpiDbDisplayGpes (); break; case CMD_HANDLERS: + AcpiDbDisplayHandlers (); break; case CMD_HELP: case CMD_HELP2: + AcpiDbDisplayHelp (AcpiGbl_DbArgs[1]); break; case CMD_HISTORY: + AcpiDbDisplayHistory (); break; - case CMD_HISTORY_EXE: + case CMD_HISTORY_EXE: /* ! command */ + CommandLine = AcpiDbGetFromHistory (AcpiGbl_DbArgs[1]); if (!CommandLine) { @@ -867,7 +887,8 @@ AcpiDbCommandDispatch ( Status = AcpiDbCommandDispatch (CommandLine, WalkState, Op); return (Status); - case CMD_HISTORY_LAST: + case CMD_HISTORY_LAST: /* !! command */ + CommandLine = AcpiDbGetFromHistory (NULL); if (!CommandLine) { @@ -878,14 +899,17 @@ AcpiDbCommandDispatch ( return (Status); case CMD_INFORMATION: + AcpiDbDisplayMethodInfo (Op); break; case CMD_INTEGRITY: + AcpiDbCheckIntegrity (); break; case CMD_INTO: + if (Op) { AcpiGbl_CmSingleStep = TRUE; @@ -894,6 +918,7 @@ AcpiDbCommandDispatch ( break; case CMD_LEVEL: + if (ParamCount == 0) { AcpiOsPrintf ("Current debug level for file output is: %8.8lX\n", @@ -921,96 +946,119 @@ AcpiDbCommandDispatch ( break; case CMD_LIST: + AcpiDbDisassembleAml (AcpiGbl_DbArgs[1], Op); break; case CMD_LOAD: + Status = AcpiDbGetTableFromFile (AcpiGbl_DbArgs[1], NULL); break; case CMD_LOCKS: + AcpiDbDisplayLocks (); break; case CMD_LOCALS: + AcpiDbDisplayLocals (); break; case CMD_METHODS: + Status = AcpiDbDisplayObjects ("METHOD", AcpiGbl_DbArgs[1]); break; case CMD_NAMESPACE: + AcpiDbDumpNamespace (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_NOTIFY: + Temp = ACPI_STRTOUL (AcpiGbl_DbArgs[2], NULL, 0); AcpiDbSendNotify (AcpiGbl_DbArgs[1], Temp); break; case CMD_OBJECT: + AcpiUtStrupr (AcpiGbl_DbArgs[1]); Status = AcpiDbDisplayObjects (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_OPEN: + AcpiDbOpenDebugFile (AcpiGbl_DbArgs[1]); break; case CMD_OSI: + AcpiDbDisplayInterfaces (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_OWNER: + AcpiDbDumpNamespaceByOwner (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2]); break; case CMD_PREDEFINED: + AcpiDbCheckPredefinedNames (); break; case CMD_PREFIX: + AcpiDbSetScope (AcpiGbl_DbArgs[1]); break; case CMD_REFERENCES: + AcpiDbFindReferences (AcpiGbl_DbArgs[1]); break; case CMD_RESOURCES: + AcpiDbDisplayResources (AcpiGbl_DbArgs[1]); break; case CMD_RESULTS: + AcpiDbDisplayResults (); break; case CMD_SET: + AcpiDbSetMethodData (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2], AcpiGbl_DbArgs[3]); break; case CMD_SLEEP: + Status = AcpiDbSleep (AcpiGbl_DbArgs[1]); break; case CMD_STATS: + Status = AcpiDbDisplayStatistics (AcpiGbl_DbArgs[1]); break; case CMD_STOP: + return (AE_NOT_IMPLEMENTED); case CMD_TABLES: + AcpiDbDisplayTableInfo (AcpiGbl_DbArgs[1]); break; case CMD_TEMPLATE: + AcpiDbDisplayTemplate (AcpiGbl_DbArgs[1]); break; case CMD_TERMINATE: + AcpiDbSetOutputDestination (ACPI_DB_REDIRECTABLE_OUTPUT); AcpiUtSubsystemShutdown (); @@ -1023,28 +1071,34 @@ AcpiDbCommandDispatch ( break; case CMD_THREADS: + AcpiDbCreateExecutionThreads (AcpiGbl_DbArgs[1], AcpiGbl_DbArgs[2], AcpiGbl_DbArgs[3]); break; case CMD_TRACE: + (void) AcpiDebugTrace (AcpiGbl_DbArgs[1],0,0,1); break; case CMD_TREE: + AcpiDbDisplayCallingTree (); break; case CMD_TYPE: + AcpiDbDisplayObjectType (AcpiGbl_DbArgs[1]); break; case CMD_UNLOAD: + AcpiDbUnloadAcpiTable (AcpiGbl_DbArgs[1]); break; case CMD_EXIT: case CMD_QUIT: + if (Op) { AcpiOsPrintf ("Method execution terminated\n"); @@ -1062,6 +1116,7 @@ AcpiDbCommandDispatch ( case CMD_NOT_FOUND: default: + AcpiOsPrintf ("Unknown Command\n"); return (AE_CTRL_TRUE); } diff --git a/source/components/debugger/dbmethod.c b/source/components/debugger/dbmethod.c index 6b25f62..fe1c3d5 100644 --- a/source/components/debugger/dbmethod.c +++ b/source/components/debugger/dbmethod.c @@ -271,6 +271,7 @@ AcpiDbSetMethodData ( break; default: + break; } @@ -501,25 +502,30 @@ AcpiDbWalkForExecute ( switch (ArgType) { case ACPI_TYPE_INTEGER: + ThisParam->Integer.Value = 1; break; case ACPI_TYPE_STRING: + ThisParam->String.Pointer = "This is the default argument string"; ThisParam->String.Length = ACPI_STRLEN (ThisParam->String.Pointer); break; case ACPI_TYPE_BUFFER: + ThisParam->Buffer.Pointer = (UINT8 *) Params; /* just a garbage buffer */ ThisParam->Buffer.Length = 48; break; case ACPI_TYPE_PACKAGE: + ThisParam->Package.Elements = NULL; ThisParam->Package.Count = 0; break; default: + AcpiOsPrintf ("%s: Unsupported argument type: %u\n", Pathname, ArgType); break; diff --git a/source/components/debugger/dbnames.c b/source/components/debugger/dbnames.c index bbe6896..b414a40 100644 --- a/source/components/debugger/dbnames.c +++ b/source/components/debugger/dbnames.c @@ -671,7 +671,7 @@ AcpiDbIntegrityWalk ( return (AE_OK); } - if (!AcpiUtValidAcpiName (Node->Name.Integer)) + if (!AcpiUtValidAcpiName (Node->Name.Ascii)) { AcpiOsPrintf ("Invalid AcpiName for Node %p\n", Node); return (AE_OK); diff --git a/source/components/debugger/dbstats.c b/source/components/debugger/dbstats.c index d9226f9..181efbf 100644 --- a/source/components/debugger/dbstats.c +++ b/source/components/debugger/dbstats.c @@ -267,6 +267,7 @@ AcpiDbEnumerateObject ( break; default: + break; } } @@ -479,7 +480,6 @@ AcpiDbDisplayStatistics ( } break; - case CMD_STAT_SIZES: AcpiOsPrintf ("\nInternal object sizes:\n\n"); @@ -530,7 +530,6 @@ AcpiDbDisplayStatistics ( AcpiOsPrintf ("Notify Info %3d\n", sizeof (ACPI_NOTIFY_INFO)); break; - case CMD_STAT_STACK: #if defined(ACPI_DEBUG_OUTPUT) @@ -545,6 +544,7 @@ AcpiDbDisplayStatistics ( break; default: + break; } diff --git a/source/components/debugger/dbutils.c b/source/components/debugger/dbutils.c index 83d60d5..268a496 100644 --- a/source/components/debugger/dbutils.c +++ b/source/components/debugger/dbutils.c @@ -179,14 +179,12 @@ AcpiDbDumpExternalObject ( AcpiOsPrintf ("[Null Object] (Type=0)\n"); break; - case ACPI_TYPE_INTEGER: AcpiOsPrintf ("[Integer] = %8.8X%8.8X\n", ACPI_FORMAT_UINT64 (ObjDesc->Integer.Value)); break; - case ACPI_TYPE_STRING: AcpiOsPrintf ("[String] Length %.2X = ", ObjDesc->String.Length); @@ -194,7 +192,6 @@ AcpiDbDumpExternalObject ( AcpiOsPrintf ("\n"); break; - case ACPI_TYPE_BUFFER: AcpiOsPrintf ("[Buffer] Length %.2X = ", ObjDesc->Buffer.Length); @@ -213,7 +210,6 @@ AcpiDbDumpExternalObject ( } break; - case ACPI_TYPE_PACKAGE: AcpiOsPrintf ("[Package] Contains %u Elements:\n", @@ -225,26 +221,22 @@ AcpiDbDumpExternalObject ( } break; - case ACPI_TYPE_LOCAL_REFERENCE: AcpiOsPrintf ("[Object Reference] = "); AcpiDmDisplayInternalObject (ObjDesc->Reference.Handle, NULL); break; - case ACPI_TYPE_PROCESSOR: AcpiOsPrintf ("[Processor]\n"); break; - case ACPI_TYPE_POWER: AcpiOsPrintf ("[Power Resource]\n"); break; - default: AcpiOsPrintf ("[Unknown Type] %X\n", ObjDesc->Type); diff --git a/source/components/debugger/dbxface.c b/source/components/debugger/dbxface.c index a6a5423..3c1df5b 100644 --- a/source/components/debugger/dbxface.c +++ b/source/components/debugger/dbxface.c @@ -232,9 +232,11 @@ AcpiDbSingleStep ( { case AML_CLASS_UNKNOWN: case AML_CLASS_ARGUMENT: /* constants, literals, etc. do nothing */ + return (AE_OK); default: + /* All other opcodes -- continue */ break; } @@ -408,6 +410,9 @@ AcpiDbInitialize ( ACPI_STATUS Status; + ACPI_FUNCTION_TRACE (DbInitialize); + + /* Init globals */ AcpiGbl_DbBuffer = NULL; @@ -427,7 +432,7 @@ AcpiDbInitialize ( AcpiGbl_DbBuffer = AcpiOsAllocate (ACPI_DEBUG_BUFFER_SIZE); if (!AcpiGbl_DbBuffer) { - return (AE_NO_MEMORY); + return_ACPI_STATUS (AE_NO_MEMORY); } ACPI_MEMSET (AcpiGbl_DbBuffer, 0, ACPI_DEBUG_BUFFER_SIZE); @@ -450,14 +455,14 @@ AcpiDbInitialize ( if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("Could not get debugger mutex\n"); - return (Status); + return_ACPI_STATUS (Status); } Status = AcpiUtAcquireMutex (ACPI_MTX_DEBUG_CMD_READY); if (ACPI_FAILURE (Status)) { AcpiOsPrintf ("Could not get debugger mutex\n"); - return (Status); + return_ACPI_STATUS (Status); } /* Create the debug execution thread to execute commands */ @@ -465,8 +470,8 @@ AcpiDbInitialize ( Status = AcpiOsExecute (OSL_DEBUGGER_THREAD, AcpiDbExecuteThread, NULL); if (ACPI_FAILURE (Status)) { - AcpiOsPrintf ("Could not start debugger thread\n"); - return (Status); + ACPI_EXCEPTION ((AE_INFO, Status, "Could not start debugger thread")); + return_ACPI_STATUS (Status); } } @@ -476,7 +481,7 @@ AcpiDbInitialize ( AcpiGbl_DbOpt_stats = FALSE; } - return (AE_OK); + return_ACPI_STATUS (AE_OK); } @@ -500,6 +505,7 @@ AcpiDbTerminate ( if (AcpiGbl_DbBuffer) { AcpiOsFree (AcpiGbl_DbBuffer); + AcpiGbl_DbBuffer = NULL; } } |