| # ACPI debugging | 
 |  | 
 | ## ACPICA debug interfaces | 
 |  | 
 | To turn on ACPICA's debug output, pass the "enable_acpi_debug = true" build | 
 | argument to GN.  When this option is enabled, ACPICA uses two global variables | 
 | to control debug output. | 
 |  | 
 | ### AcpiDbgLevel | 
 |  | 
 | AcpiDbgLevel is a bitmap of values defined in | 
 | third\_party/lib/acpica/source/include/acpica/acoutput.h with the prefix | 
 | "ACPI\_LV\_".  For convenience, there are some pre-defined verbosity levels: | 
 | ACPI\_LV\_VERBOSITY1, ACPI\_LV\_VERBOSITY2, ACPI\_LV\_VERBOSITY3.  These control | 
 | types of tracing events to log.  For example, if you want to trace all function | 
 | calls and mutex operations, you can set AcpiDbgLevel to | 
 |  | 
 | "ACPI\_LV\_FUNCTIONS | ACPI\_LV\_MUTEX" | 
 |  | 
 | ### AcpiDbgLayer | 
 |  | 
 | AcpiDbgLayer is a bitmap of values defined in | 
 | third\_party/lib/acpica/source/include/acpica/acoutput.h.  These do not have a | 
 | common prefix, but are listed as "Component IDs".  These control which | 
 | submodules of ACPICA are to be traced.  For example, to trace through the | 
 | namespace logic and the executor, you can set AcpiDbgLayer to | 
 |  | 
 | "ACPI\_NAMESPACE | ACPI\_EXECUTOR" | 
 |  | 
 | ### Setting these values | 
 |  | 
 | One easy place to set these in the AcpiOsInitialize method that we define in | 
 | third\_party/lib/acpica/source/os\_specific/service\_layers/osfuchsia.cpp. | 
 | One technique that may be useful is zeroing both values in AcpiOsInitialize, and | 
 | setting it to a non-zero value immediate before a call into ACPICA of interest. | 
 |  | 
 | ### AcpiDebugTrace | 
 |  | 
 | There is additionally a method named AcpiDebugTrace in the ACPIA API.  It | 
 | supposedly supports tracing particular ACPI methods by their 4-character | 
 | namespace names (but with no scoping to particular Nodes).  See the ACPICA | 
 | manual for details. |