extern void return_command (char *, int);
/* Set FRAME's unwinder temporarily, so that we can call a sniffer.
- Return a cleanup which should be called if unwinding fails, and
- discarded if it succeeds. */
+ If sniffing fails, the caller should be sure to call
+ frame_cleanup_after_sniffer. */
-struct cleanup *frame_prepare_for_sniffer (struct frame_info *frame,
- const struct frame_unwind *unwind);
+extern void frame_prepare_for_sniffer (struct frame_info *frame,
+ const struct frame_unwind *unwind);
+
+/* Clean up after a failed (wrong unwinder) attempt to unwind past
+ FRAME. */
+
+extern void frame_cleanup_after_sniffer (struct frame_info *frame);
/* Notes (cagney/2002-11-27, drow/2003-09-06):
extern struct frame_info *create_new_frame (CORE_ADDR base, CORE_ADDR pc);
-#if GDB_SELF_TEST
-
-/* Create a frame for unit test. Its next frame is sentinel frame,
- created from REGCACHE. */
-
-extern struct frame_info *create_test_frame (struct regcache *regcache);
-#endif
-
/* Return true if the frame unwinder for frame FI is UNWINDER; false
otherwise. */