1 /***************************************************************************
2 * ARM Stack Unwinder, Michael.McTernan.2001@cs.bris.ac.uk
4 * This program is PUBLIC DOMAIN.
5 * This means that there is no copyright and anyone is able to take a copy
6 * for free and use it as they wish, with or without modifications, and in
7 * any context, commercially or otherwise. The only limitation is that I
8 * don't guarantee that the software is fit for any purpose or accept any
9 * liability for it's use or misuse - this software is without warranty.
10 ***************************************************************************
11 * File Description: Implementation of the interface into the ARM unwinder.
12 **************************************************************************/
14 #define MODULE_NAME "UNWARMINDER"
16 /***************************************************************************
18 **************************************************************************/
23 #include "unwarminder.h"
27 /***************************************************************************
29 **************************************************************************/
32 /***************************************************************************
34 **************************************************************************/
37 /***************************************************************************
39 **************************************************************************/
42 /***************************************************************************
44 **************************************************************************/
47 /***************************************************************************
49 **************************************************************************/
52 /***************************************************************************
54 **************************************************************************/
56 UnwResult
UnwindStart(Int32 pcValue
,
58 const UnwindCallbacks
*cb
,
63 /* Initialise the unwinding state */
64 UnwInitState(&state
, cb
, data
, pcValue
, spValue
);
66 /* Check the Thumb bit */
69 return UnwStartThumb(&state
);
73 return UnwStartArm(&state
);