summaryrefslogtreecommitdiff
path: root/gdb/frame-unwind.h
diff options
context:
space:
mode:
authorAndreas Schwab <schwab@suse.de>2007-06-12 15:21:27 +0000
committerAndreas Schwab <schwab@suse.de>2007-06-12 15:21:27 +0000
commitae4e6e4eaa6d988db4e6ecb37a25bf8cf1e33306 (patch)
tree1f370e2ab46d44e9ae887b7dc64412edbdb6b31f /gdb/frame-unwind.h
parent4330356dffab209a837d8904d43f145b4ff4ffed (diff)
downloadgdb-ae4e6e4eaa6d988db4e6ecb37a25bf8cf1e33306.tar.gz
* frame-unwind.h (frame_dealloc_cache_ftype): Define.
(struct frame_unwind): Add dealloc_cache. * frame.c (reinit_frame_cache): Call dealloc_cache on all caches. * libunwind-frame.h (libunwind_frame_dealloc_cache): Declare. * libunwind-frame.c (libunwind_frame_dealloc_cache): Define. (libunwind_frame_unwind): Set dealloc_cache. * ia64-tdep.c (ia64_libunwind_frame_unwind): Set dealloc_cache.
Diffstat (limited to 'gdb/frame-unwind.h')
-rw-r--r--gdb/frame-unwind.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/gdb/frame-unwind.h b/gdb/frame-unwind.h
index e1ac8717c78..87c8161e668 100644
--- a/gdb/frame-unwind.h
+++ b/gdb/frame-unwind.h
@@ -125,6 +125,10 @@ typedef void (frame_prev_register_ftype) (struct frame_info *next_frame,
typedef CORE_ADDR (frame_prev_pc_ftype) (struct frame_info *next_frame,
void **this_prologue_cache);
+/* Deallocate extra memory associated with the frame cache if any. */
+
+typedef void (frame_dealloc_cache_ftype) (struct frame_info *self,
+ void *this_cache);
struct frame_unwind
{
@@ -138,6 +142,7 @@ struct frame_unwind
const struct frame_data *unwind_data;
frame_sniffer_ftype *sniffer;
frame_prev_pc_ftype *prev_pc;
+ frame_dealloc_cache_ftype *dealloc_cache;
};
/* Register a frame unwinder, _prepending_ it to the front of the