class Symbolize
Defined at line 38 of file ../../zircon/kernel/phys/include/phys/symbolize.h
Public Methods
void Symbolize ()
Defined at line 64 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void Symbolize (const Symbolize & )
Defined at line 65 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void Symbolize (const char * name, FILE * f)
Defined at line 67 of file ../../zircon/kernel/phys/include/phys/symbolize.h
const ElfImage * module_for_vaddr_range (uintptr_t vaddr, size_t len)
Defined at line 130 of file ../../zircon/kernel/phys/symbolize.cc
const ElfImage * module_for_vaddr_range (uintptr_t vaddr, size_t len)
Defined at line 130 of file ../../zircon/kernel/phys/symbolize.cc
const ElfImage * module_for_vaddr_range (uintptr_t vaddr, size_t len)
Defined at line 130 of file ../../zircon/kernel/phys/symbolize.cc
elfldltl::ElfNote build_id ()
Return the ELF build ID note for the currently executing module (i.e., the
first module to call OnLoad or the last module to call OnHandoff).
Defined at line 90 of file ../../zircon/kernel/phys/symbolize.cc
void ReplaceModulesStorage (ModuleList modules)
This reads the existing modules to the new storage and then
replaces it as the storage to be used by future OnLoad calls.
Defined at line 69 of file ../../zircon/kernel/phys/symbolize.cc
void ReplaceModulesStorage (ModuleList modules)
This reads the existing modules to the new storage and then
replaces it as the storage to be used by future OnLoad calls.
Defined at line 69 of file ../../zircon/kernel/phys/symbolize.cc
void ReplaceModulesStorage (ModuleList modules)
This reads the existing modules to the new storage and then
replaces it as the storage to be used by future OnLoad calls.
Defined at line 69 of file ../../zircon/kernel/phys/symbolize.cc
const char * name ()
Defined at line 70 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void set_name (const char * new_name)
Defined at line 72 of file ../../zircon/kernel/phys/include/phys/symbolize.h
std::span<const ElfImage *const> modules ()
Defined at line 74 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void set_stacks (ktl::span<const Stack<BootStack>> stacks)
Defined at line 86 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void set_stacks (ktl::span<const Stack<BootStack>> stacks)
Defined at line 86 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void set_stacks (ktl::span<const Stack<BootStack>> stacks)
Defined at line 86 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void set_shadow_call_stacks (ktl::span<const Stack<BootShadowCallStack>> stacks)
Defined at line 88 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void set_shadow_call_stacks (ktl::span<const Stack<BootShadowCallStack>> stacks)
Defined at line 88 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void set_shadow_call_stacks (ktl::span<const Stack<BootShadowCallStack>> stacks)
Defined at line 88 of file ../../zircon/kernel/phys/include/phys/symbolize.h
FramePointerBacktrace GetFramePointerBacktrace (const arch::CallFrame * fp)
Defined at line 97 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void ContextAlways (FILE * log)
Print the contextual markup elements describing each loaded module.
Defined at line 103 of file ../../zircon/kernel/phys/symbolize.cc
void Context ()
Same, but idempotent: the first call prints and others do nothing.
Defined at line 112 of file ../../zircon/kernel/phys/symbolize.cc
void ModuleContext (const ElfImage & loaded, unsigned int module_id, bool physical)
Print one module's context if Context() has already printed.
Defined at line 119 of file ../../zircon/kernel/phys/symbolize.cc
void OnLoad (const ElfImage & loaded)
Adds the new module to the list. If Context() has run, then emit context
for the new module.
Defined at line 125 of file ../../zircon/kernel/phys/symbolize.cc
template <typename T>
void BackTrace (const T & pcs, unsigned int n, unsigned int max)
Print a backtrace, ensuring context has been printed beforehand.
This takes any container of uintptr_t, so FramePointer works.
Defined at line 127 of file ../../zircon/kernel/phys/include/phys/symbolize.h
bool IsOnStack (uintptr_t sp)
Defined at line 225 of file ../../zircon/kernel/phys/symbolize.cc
bool IsOnStack (uintptr_t sp)
Defined at line 225 of file ../../zircon/kernel/phys/symbolize.cc
bool IsOnStack (uintptr_t sp)
Defined at line 225 of file ../../zircon/kernel/phys/symbolize.cc
arch::ShadowCallStackBacktrace GetShadowCallStackBacktrace (uintptr_t scsp)
Defined at line 230 of file ../../zircon/kernel/phys/symbolize.cc
arch::ShadowCallStackBacktrace GetShadowCallStackBacktrace (uintptr_t scsp)
Defined at line 230 of file ../../zircon/kernel/phys/symbolize.cc
arch::ShadowCallStackBacktrace GetShadowCallStackBacktrace (uintptr_t scsp)
Defined at line 230 of file ../../zircon/kernel/phys/symbolize.cc
void OnHandoff (ElfImage & next)
Registers the next, just-handed-of-to module as the currently executing
one.
Defined at line 142 of file ../../zircon/kernel/phys/symbolize.cc
void LogHandoff (ktl::string_view name, uintptr_t entry_pc)
Defined at line 152 of file ../../zircon/kernel/phys/symbolize.cc
void LogHandoff (ktl::string_view name, uintptr_t entry_pc)
Defined at line 152 of file ../../zircon/kernel/phys/symbolize.cc
void LogHandoff (ktl::string_view name, uintptr_t entry_pc)
Defined at line 152 of file ../../zircon/kernel/phys/symbolize.cc
void BackTraceFrame (unsigned int n, uintptr_t pc, bool interrupt)
Print the presentation markup element for one frame of a backtrace.
Defined at line 156 of file ../../zircon/kernel/phys/symbolize.cc
void BackTraceFrame (unsigned int n, uintptr_t pc, bool interrupt)
Print the presentation markup element for one frame of a backtrace.
Defined at line 156 of file ../../zircon/kernel/phys/symbolize.cc
void BackTraceFrame (unsigned int n, uintptr_t pc, bool interrupt)
Print the presentation markup element for one frame of a backtrace.
Defined at line 156 of file ../../zircon/kernel/phys/symbolize.cc
void PrintBacktraces (const FramePointerBacktrace & frame_pointers, const arch::ShadowCallStackBacktrace & shadow_call_stack, ktl::optional<uintptr_t> interrupt_pc)
Print both flavors of backtrace together. If the optional interrupt_pc
argument is supplied, then it's inserted as frame 0 and marked as exact PC
(whereas all frame-pointer and shadow-call-stack frames are marked as RA).
Defined at line 170 of file ../../zircon/kernel/phys/symbolize.cc
void PrintBacktraces (const FramePointerBacktrace & frame_pointers, const arch::ShadowCallStackBacktrace & shadow_call_stack, ktl::optional<uintptr_t> interrupt_pc)
Print both flavors of backtrace together. If the optional interrupt_pc
argument is supplied, then it's inserted as frame 0 and marked as exact PC
(whereas all frame-pointer and shadow-call-stack frames are marked as RA).
Defined at line 170 of file ../../zircon/kernel/phys/symbolize.cc
void PrintBacktraces (const FramePointerBacktrace & frame_pointers, const arch::ShadowCallStackBacktrace & shadow_call_stack, ktl::optional<uintptr_t> interrupt_pc)
Print both flavors of backtrace together. If the optional interrupt_pc
argument is supplied, then it's inserted as frame 0 and marked as exact PC
(whereas all frame-pointer and shadow-call-stack frames are marked as RA).
Defined at line 170 of file ../../zircon/kernel/phys/symbolize.cc
void DumpFile (ktl::string_view announce, size_t size_bytes, ktl::string_view sink_name, ktl::string_view vmo_name, ktl::string_view vmo_name_suffix)
Print the trigger markup element for a dumpfile.
Defined at line 163 of file ../../zircon/kernel/phys/symbolize.cc
void DumpFile (ktl::string_view announce, size_t size_bytes, ktl::string_view sink_name, ktl::string_view vmo_name, ktl::string_view vmo_name_suffix)
Print the trigger markup element for a dumpfile.
Defined at line 163 of file ../../zircon/kernel/phys/symbolize.cc
void DumpFile (ktl::string_view announce, size_t size_bytes, ktl::string_view sink_name, ktl::string_view vmo_name, ktl::string_view vmo_name_suffix)
Print the trigger markup element for a dumpfile.
Defined at line 163 of file ../../zircon/kernel/phys/symbolize.cc
void PrintStack (uintptr_t sp, ktl::optional<size_t> max_size_bytes)
Dump some stack up to the SP.
Defined at line 198 of file ../../zircon/kernel/phys/symbolize.cc
void PrintStack (uintptr_t sp, ktl::optional<size_t> max_size_bytes)
Dump some stack up to the SP.
Defined at line 198 of file ../../zircon/kernel/phys/symbolize.cc
void PrintStack (uintptr_t sp, ktl::optional<size_t> max_size_bytes)
Dump some stack up to the SP.
Defined at line 198 of file ../../zircon/kernel/phys/symbolize.cc
void PrintRegisters (const PhysExceptionState & regs)
Print out register values.
Defined at line 269 of file ../../zircon/kernel/phys/symbolize.cc
void PrintException (uint64_t vector, const char * vector_name, const PhysExceptionState & regs)
Print out useful details at an exception.
Defined at line 347 of file ../../zircon/kernel/phys/symbolize.cc
void PrintException (uint64_t vector, const char * vector_name, const PhysExceptionState & regs)
Print out useful details at an exception.
Defined at line 347 of file ../../zircon/kernel/phys/symbolize.cc
void CallCfiSlowpath (uint64_t key, void * entry, const void * diag_data, void * caller)
Defined at line 31 of file ../../zircon/kernel/phys/cfi-runtime.cc
void CallCfiSlowpath (uint64_t key, void * entry, const void * diag_data, void * caller)
Defined at line 31 of file ../../zircon/kernel/phys/cfi-runtime.cc
void PruneFromMainModule (uint64_t start, uint64_t end)
The arguments must be a subrange of the main module's final segment's
runtime vaddr bounds (i.e. a range of data + bss addresses). That tail
should no longer be considered part of the segment's or module's bounds.
Defined at line 241 of file ../../zircon/kernel/phys/symbolize.cc
void PruneFromMainModule (uint64_t start, uint64_t end)
The arguments must be a subrange of the main module's final segment's
runtime vaddr bounds (i.e. a range of data + bss addresses). That tail
should no longer be considered part of the segment's or module's bounds.
Defined at line 241 of file ../../zircon/kernel/phys/symbolize.cc
Protected Methods
void set_main_module (const ElfImage & main)
Defined at line 180 of file ../../zircon/kernel/phys/include/phys/symbolize.h
void set_cfi_slowpath (CallCfiSlowpathFunction * cfi_slowpath, CfiCheckFunction * main_cfi_check)
void set_cfi_slowpath (CallCfiSlowpathFunction * cfi_slowpath, CfiCheckFunction * main_cfi_check)
Defined at line 28 of file ../../zircon/kernel/phys/main-symbolize-cfi.cc