# Debug

The ipmctl utility provides several debugging features for persistent memory modules.&#x20;

For an in-depth explanation for how ipmctl works with the hardware see the [Intel® Optane™ Persistent Memory OS Provisioning Specification](https://cdrdv2.intel.com/v1/dl/getContent/634430), which describes all the firmware interface commands used for this operation.

Here are the articles in this section:

{% content-ref url="debug/run-diagnostic" %}
[run-diagnostic](https://docs.pmem.io/ipmctl-user-guide/debug/run-diagnostic)
{% endcontent-ref %}

{% content-ref url="debug/show-error-log" %}
[show-error-log](https://docs.pmem.io/ipmctl-user-guide/debug/show-error-log)
{% endcontent-ref %}

{% content-ref url="debug/dump-debug-log" %}
[dump-debug-log](https://docs.pmem.io/ipmctl-user-guide/debug/dump-debug-log)
{% endcontent-ref %}

{% content-ref url="debug/show-acpi-tables" %}
[show-acpi-tables](https://docs.pmem.io/ipmctl-user-guide/debug/show-acpi-tables)
{% endcontent-ref %}

{% content-ref url="debug/show-device-platform-configuration-data" %}
[show-device-platform-configuration-data](https://docs.pmem.io/ipmctl-user-guide/debug/show-device-platform-configuration-data)
{% endcontent-ref %}

{% content-ref url="debug/delete-device-platform-configuration-data" %}
[delete-device-platform-configuration-data](https://docs.pmem.io/ipmctl-user-guide/debug/delete-device-platform-configuration-data)
{% endcontent-ref %}

{% content-ref url="debug/inject-error" %}
[inject-error](https://docs.pmem.io/ipmctl-user-guide/debug/inject-error)
{% endcontent-ref %}
