# This log is printed by the last_reboot during Fuchsia startup when the last reboot is caused by
# a kernel panic. It can be triggered by `k crash` in Fuchsia shell and the log is obtained through
# `fx log --raw`. The content is also dumped into the serial logs pre-reboot.
UPTIME (ms)
65658

VERSION
arch: aarch64
build_id: git-3bb27b5f560622a654dae107410993f26dccbfd9-dirty
dso: id=5901d7a3998302f6 base=0xffffffff10000000 name=zircon.elf

[[[ELF module #0x0 "kernel" BuildID=5901d7a3998302f6 0x10000000]]]
REGISTERS
  x0: 0xffffffff10182045
  x1: 0xffff00002e503800
  x2:                  0
  x3:                  0
  x4:         0x6d757478
  x5: 0xffff00854f45fd49
  x6:         0x73617263
  x7:         0x68736172
  x8:                0x1
  x9:                  0
 x10:                  0
 x11:                  0
 x12:                0x1
 x13:                0x2
 x14: 0xffff00002e503a80
 x15: 0xffffffff10221100
 x16:             0x1a60
 x17:               0x20
 x18: 0xffff00854f462028
 x19: 0xffffffff1019c360
 x20: 0xffffffff101a08a0
 x21: 0xffffffff101a0f60
 x22: 0xffff00002e503800
 x23: 0xffffffff101c8000
 x24: 0xffff00002e503a90
 x25:               0x28
 x26: 0xffff00002e503a90
 x27:                  0
 x28:                0x1
 x29: 0xffff00854f45fc30
  lr: 0xffffffff10005188
 usp:      0x37b559bdd00
 elr: 0xffffffff1000387c
spsr:         0x80000345
 esr:         0x96000045
 far:                0x1

BACKTRACE (up to 16 calls)
   #0    0xffffffff10044514 in crashlog_to_string(char*, size_t const, zircon_crash_reason_t) ../../zircon/kernel/lib/crashlog/crashlog.cc:179 <kernel>+0xffffffff00044514
   #1    0xffffffff10145514 in platform_halt(platform_halt_action, zircon_crash_reason_t) ../../zircon/kernel/platform/power.cc:54 <kernel>+0xffffffff00145514
   #2    0xffffffff100b9d38 in exception_die(arm64_iframe_t*, uint32_t, uint64_t, const char*) ../../zircon/kernel/arch/arm64/exceptions_c.cc:147 <kernel>+0xffffffff000b9d38
   #3.1  0xffffffff100b9c60 in arm64_data_abort_handler(arm64_iframe_t*, uint, uint32_t) ../../zircon/kernel/arch/arm64/exceptions_c.cc:363 <kernel>+0xffffffff000b9c60
   #3    0xffffffff100b9c60 in arm64_sync_exception(arm64_iframe_t*, uint, uint32_t) ../../zircon/kernel/arch/arm64/exceptions_c.cc:404 <kernel>+0xffffffff000b9c60
   #4    0xffffffff100b8278 in ../../zircon/kernel/arch/arm64/exceptions.S:294 <kernel>+0xffffffff000b8278
   #5    0xffffffff10005188 in command_loop(int (*)(const char**, void*), void*, bool, bool) ../../zircon/kernel/lib/console/console.cc:572 <kernel>+0xffffffff00005188
   #6.1  0xffffffff100048dc in console_run_script_etc(const char*, bool) ../../zircon/kernel/lib/console/console.cc:665 <kernel>+0xffffffff000048dc
   #6    0xffffffff100048dc in console_run_script(const char*) ../../zircon/kernel/lib/console/console.cc:672 <kernel>+0xffffffff000048dc
   #7    0xffffffff100f5abc in sys_debug_send_command(zx_handle_t, user_in_ptr<const char>, size_t) ../../zircon/kernel/lib/syscalls/debug.cc:124 <kernel>+0xffffffff000f5abc
   #8.2  0xffffffff10107c98 in λ(const (anon class)*, ProcessDispatcher*) gen/vdso/include/lib/syscalls/kernel-wrappers.inc:164 <kernel>+0xffffffff00107c98
   #8.1  0xffffffff10107c98 in do_syscall<(lambda at gen/vdso/include/lib/syscalls/kernel-wrappers.inc:163:97)>(uint64_t, uint64_t, (anon class), bool (*)(uintptr_t)) ../../zircon/kernel/lib/syscalls/syscalls.cc:103 <kernel>+0xffffffff00107c98
   #8    0xffffffff10107c98 in wrapper_debug_send_command(zx_handle_t, const char*, size_t, uint64_t) gen/vdso/include/lib/syscalls/kernel-wrappers.inc:163 <kernel>+0xffffffff00107c98
   #9    0xffffffff100b8a28 in gen/vdso/include/lib/syscalls/kernel.inc:173 <kernel>+0xffffffff000b8a28

