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