I've worked out the backtrace. Changing the compiler is probably not an option.
One colleague has suggested that with systems with reasonable size caches, not
saving the arguments on the stack does not provide significant performance
improvement. I'm sure that depends upon what you are doing, but I suspect he is
right for the most part.
From: Ralf Baechle [mailto:email@example.com]
Sent: Wed 11/23/2005 1:54 AM
To: Knittel, Brian
Cc: firstname.lastname@example.org; Dominic Sweetman
Subject: Re: Saving arguments on the stack
On Tue, Nov 22, 2005 at 10:24:09AM -0800, Knittel, Brian wrote:
> We'd like to add arguments to the backtrace in Oops messages to make
> debugging from these reports more efficient. It is particularly useful
> for determining where the problem was generated, particularly when bad
> pointers are passed in. This is for production embedded devices with
> optimized code and which reboot immediately after storing or sending
> Oops message. Performance is an issue, but the overhead of storing the
> arguments on the stack is likely worth the added debug info.
In this case you would probably have to modify the compiler to save all
arguments. Another issue is actually finding the stackframe. For a
debugger using debug information this is possible but short of that it's
hard on MIPS to produce a meaningful backtrace. Or having something
as complicate as on ia64 ...