HomeFreeBSD

Don't return undefined symbols to a DDB symbol lookup.

Description

Don't return undefined symbols to a DDB symbol lookup.

Undefined symbols have a value of zero, so it makes no sense to return
such a symbol when performing a lookup by value. This occurs for example
when unwinding the stack after calling a NULL function pointer, and we
confusingly report the faulting function as uart_sab82532_class() on
amd64.

Convert db_print_loc_and_inst() to only attempt disassembly if we managed
to find a symbol corresponding to the IP. Otherwise we may fault and
re-enter the debugger.

Reviewed by: jhb
Sponsored by: EMC / Isilon Storage Division
Differential Revision: https://reviews.freebsd.org/D2858

Details

Provenance
markjAuthored on
Reviewer
jhb
Differential Revision
D2858: ddb: don't return undefined symbols to a lookup
Parents
rS285773: Remove some dead code from DDB's amd64 stack unwinder.
Branches
Unknown
Tags
Unknown