exception command
=================

Synopsis
--------

::

    exception <type>

Description
-----------

The exception command is used to test the handling of exceptions like undefined
instructions, segmentation faults or alignment faults.

type
  type of exception to be generated. The available types are architecture
  dependent. Use 'help exception' to determine which are available.

  **ARM:**

  breakpoint
    prefetch abort

  unaligned
    data abort

  undefined
    undefined instruction

  **RISC-V:**

  unaligned
    load address misaligned

  undefined
    undefined instruction

  **Sandbox:**

  sigsegv
    illegal memory access

  undefined
    undefined instruction

  **x86:**

  undefined
    undefined instruction

Examples
--------

::

    => exception undefined

    Illegal instruction
    pc = 0x56076dd1a0f9, pc_reloc = 0x540f9

    resetting ...
