ladybird/Base/usr/share/man/man1/crash.md
Ben Wiederhake c840ed12f4 Manpages: Document path of crash(1)
As /usr/Tests/Kernel/ is not in $PATH, invoking crash(1) does not work
as documented.
2021-11-01 21:12:58 +01:00

1.5 KiB

Name

crash - intentionally perform an illegal operation

Synopsis

$ /usr/Tests/Kernel/crash [options]

Description

This program is used to test how the Serenity kernel or UserspaceEmulator handle userspace crashes, and can be used to simulate many different kinds of crashes.

Options

  • -A: Test that all of the following crash types crash as expected.
  • -s: Perform a segmentation violation by dereferencing an invalid pointer.
  • -d: Perform a division by zero.
  • -i: Execute an illegal CPU instruction.
  • -a: Call abort().
  • -m: Read a pointer from uninitialized malloc memory, then read from it.
  • -f: Read a pointer from memory freed using free(), then read from it.
  • -M: Read a pointer from uninitialized malloc memory, then write to it.
  • -F: Read a pointer from memory freed using free(), then write to it.
  • -r: Write to read-only memory.
  • -T: Make a syscall while using an invalid stack pointer.
  • -t: Trigger a page fault while using an invalid stack pointer.
  • -S: Make a syscall from writeable memory.
  • -X: Attempt to execute non-executable memory (Not mapped with PROT_EXEC).
  • -U: Attempt to trigger an x86 User Mode Instruction Prevention fault.
  • -I: Use an x86 I/O instruction in userspace.
  • -c: Read the x86 TSC (Time Stamp Counter) directly.
  • -p: Violate pledge()'d promises.
  • -n: Perform a failing assertion.

Examples

$ crash -F
Testing: "Write to freed memory"
Shell: Job 1 (crash -F) Segmentation violation