dtrace: avoid unreliable entries in stack() output
The original implementation of the stacktrace walker for DTrace often reported
unreliable (i.e. non-callframe) entries in the stack() output. This was most
often seen as a result of datastructures allocated on the stack in functions.
This new implementation isn't plagued by that issue anymore. It uses knowledge
of the basepointer (bp) to link callframes.
Orabug:
18323450
Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
Acked-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>