mi-syn-frame.c
来自「这个是LINUX下的GDB调度工具的源码」· C语言 代码 · 共 67 行
C
67 行
#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");}voidfoo (void){ puts ("hi in foo");}void bar (void){ char *nuller = 0; puts ("hi in bar"); *nuller = 'a'; /* try to cause a segfault */}voidhandler (int sig){ subroutine (sig);}/* The first statement in subroutine () is a place for a breakpoint. Without it, the breakpoint is put on the while comparison and will be hit at each iteration. */voidsubroutine (int in){ int count = in; while (count < 100) count++;}voidhave_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 */}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?