Subject: Unwind (just) works
To: None <port-ia64@netbsd.org>
From: Cherry George Mathew <cherry@mahiti.org>
List: port-ia64
Date: 02/05/2006 17:25:25
Hi,
I've been working on stack unwind for ddb for some time now. I've just
checked in the code, and updated the downloads directory:
http://cherry.beevomit.org/downloads/netbsd-anvil/
Please note that the unwind code is take 1; ie; it has bugs.
It works for most functions, and only maintains sufficient information
( return pointer, size of frame ) to unwind. I'll update this to do
more ( such as fetch parameters ) as we go forward; Right now this can
be used as a partly reliable tool to unwind _most_ types of functions
( notable exceptions are marked very visibly in the source ).
This is a "from scratch" effort, and neither includes, nor is inspired
by David Mosberger's unwind library, which we may or may not decide to
adopt later, depending on how this code matures.
type the usual: 'bt' at the debugger prompt to get a sample backtrace.
You need to #define UNWIND_DIAGNOSTIC in unwind/stackframe.c to get
all the gory staterecord related stuff.
New files:
sys/arch/ia64/unwind/
stackframe.[ch]
decode.[ch]
Thanks,
Cherry.