Home | History | Annotate | Line # | Download | only in gdb.base
      1      1.1  christos /* This testcase is part of GDB, the GNU debugger.
      2      1.1  christos 
      3  1.1.1.2  christos    Copyright 2021-2024 Free Software Foundation, Inc.
      4      1.1  christos 
      5      1.1  christos    This program is free software; you can redistribute it and/or modify
      6      1.1  christos    it under the terms of the GNU General Public License as published by
      7      1.1  christos    the Free Software Foundation; either version 3 of the License, or
      8      1.1  christos    (at your option) any later version.
      9      1.1  christos 
     10      1.1  christos    This program is distributed in the hope that it will be useful,
     11      1.1  christos    but WITHOUT ANY WARRANTY; without even the implied warranty of
     12      1.1  christos    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
     13      1.1  christos    GNU General Public License for more details.
     14      1.1  christos 
     15      1.1  christos    You should have received a copy of the GNU General Public License
     16      1.1  christos    along with this program.  If not, see <http://www.gnu.org/licenses/>.  */
     17      1.1  christos 
     18      1.1  christos #include <unistd.h>
     19      1.1  christos 
     20      1.1  christos static unsigned int global_counter = 1;
     21      1.1  christos 
     22      1.1  christos static volatile unsigned int __attribute__((used)) global_var = 123;
     23      1.1  christos 
     24      1.1  christos static void
     25      1.1  christos maybe_stop_here ()
     26      1.1  christos {
     27      1.1  christos }
     28      1.1  christos 
     29      1.1  christos int
     30      1.1  christos main (void)
     31      1.1  christos {
     32      1.1  christos   global_counter = 1;
     33      1.1  christos 
     34      1.1  christos   while (global_counter > 0)
     35      1.1  christos     {
     36      1.1  christos       global_counter++;
     37      1.1  christos 
     38      1.1  christos       /* Less than 1s, so the counter increments at least once while
     39      1.1  christos 	 the .exp sleep 1s, but slow enough that the counter doesn't
     40      1.1  christos 	 wrap in 1s.  */
     41      1.1  christos       usleep (5000);
     42      1.1  christos 
     43      1.1  christos       maybe_stop_here ();
     44      1.1  christos     }
     45      1.1  christos 
     46      1.1  christos   return 0;
     47      1.1  christos }
     48