From 2002-11-09 Jason Molenda (jason-cl@molenda.com) * stack.c (print_frame_info_base): Output complete FRAME tuple for synthesized frames. 2003-02-01 Andrew Cagney <ac131313@redhat.com> From 2002-11-09 Jason Molenda (jason-cl@molenda.com): * gdb.mi/mi-syn-frame.exp: New tests for synthetic frames in stack backtraces. * gdb.mi/mi-syn-frame.c: Part of same.
61 lines
811 B
C
61 lines
811 B
C
#include <signal.h>
|
|
#include <unistd.h>
|
|
#include <stdlib.h>
|
|
|
|
void foo (void);
|
|
void bar (void);
|
|
|
|
void subroutine (int);
|
|
void handler (int);
|
|
void have_a_very_merry_interrupt (void);
|
|
|
|
main ()
|
|
{
|
|
puts ("Starting up");
|
|
|
|
foo (); /* Put a breakpoint on foo() and call it to see a dummy frame */
|
|
|
|
|
|
have_a_very_merry_interrupt ();
|
|
|
|
puts ("Shutting down");
|
|
}
|
|
|
|
void
|
|
foo (void)
|
|
{
|
|
puts ("hi in foo");
|
|
}
|
|
|
|
void
|
|
bar (void)
|
|
{
|
|
char *nuller = 0;
|
|
|
|
puts ("hi in bar");
|
|
|
|
*nuller = 'a'; /* try to cause a segfault */
|
|
}
|
|
|
|
void
|
|
handler (int sig)
|
|
{
|
|
subroutine (sig);
|
|
}
|
|
|
|
void
|
|
subroutine (int in)
|
|
{
|
|
while (in < 100)
|
|
in++;
|
|
}
|
|
|
|
void
|
|
have_a_very_merry_interrupt (void)
|
|
{
|
|
puts ("Waiting to get a signal");
|
|
signal (SIGALRM, handler);
|
|
alarm (1);
|
|
sleep (2); /* We'll receive that signal while sleeping */
|
|
}
|
|
|