Home | History | Annotate | Line # | Download | only in gdb.base
examine-backward.c revision 1.1
      1  1.1  christos /* This testcase is part of GDB, the GNU debugger.
      2  1.1  christos 
      3  1.1  christos    Copyright 2015-2016 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 /*
     19  1.1  christos Define TestStrings, TestStringsH, and TestStringsW to test utf8, utf16,
     20  1.1  christos and utf32 strings respectively.
     21  1.1  christos To avoid compile errors due to old compiler mode, we don't use string
     22  1.1  christos literals.  The content of each array is the same as followings:
     23  1.1  christos 
     24  1.1  christos   const char TestStrings[] = {
     25  1.1  christos       "ABCD"
     26  1.1  christos       "EFGHIJKLMNOPQRSTUVWXYZ\0"
     27  1.1  christos       "\0"
     28  1.1  christos       "\0"
     29  1.1  christos       "\u307B\u3052\u307B\u3052\0"
     30  1.1  christos       "012345678901234567890123456789\0"
     31  1.1  christos       "!!!!!!\0"
     32  1.1  christos   };
     33  1.1  christos */
     34  1.1  christos 
     35  1.1  christos const char TestStrings[] = {
     36  1.1  christos   0x41, 0x42, 0x43, 0x44, 0x45, 0x46, 0x47, 0x48,
     37  1.1  christos   0x49, 0x4a, 0x4b, 0x4c, 0x4d, 0x4e, 0x4f, 0x50,
     38  1.1  christos   0x51, 0x52, 0x53, 0x54, 0x55, 0x56, 0x57, 0x58,
     39  1.1  christos   0x59, 0x5a, 0x00, 0x00, 0x00, 0xe3, 0x81, 0xbb,
     40  1.1  christos   0xe3, 0x81, 0x92, 0xe3, 0x81, 0xbb, 0xe3, 0x81,
     41  1.1  christos   0x92, 0x00, 0x30, 0x31, 0x32, 0x33, 0x34, 0x35,
     42  1.1  christos   0x36, 0x37, 0x38, 0x39, 0x30, 0x31, 0x32, 0x33,
     43  1.1  christos   0x34, 0x35, 0x36, 0x37, 0x38, 0x39, 0x30, 0x31,
     44  1.1  christos   0x32, 0x33, 0x34, 0x35, 0x36, 0x37, 0x38, 0x39,
     45  1.1  christos   0x00, 0x21, 0x21, 0x21, 0x21, 0x21, 0x21, 0x00,
     46  1.1  christos   0x00
     47  1.1  christos };
     48  1.1  christos 
     49  1.1  christos const short TestStringsH[] = {
     50  1.1  christos   0x0041, 0x0042, 0x0043, 0x0044, 0x0045, 0x0046, 0x0047, 0x0048,
     51  1.1  christos   0x0049, 0x004a, 0x004b, 0x004c, 0x004d, 0x004e, 0x004f, 0x0050,
     52  1.1  christos   0x0051, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057, 0x0058,
     53  1.1  christos   0x0059, 0x005a, 0x0000, 0x0000, 0x0000, 0x307b, 0x3052, 0x307b,
     54  1.1  christos   0x3052, 0x0000, 0x0030, 0x0031, 0x0032, 0x0033, 0x0034, 0x0035,
     55  1.1  christos   0x0036, 0x0037, 0x0038, 0x0039, 0x0030, 0x0031, 0x0032, 0x0033,
     56  1.1  christos   0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039, 0x0030, 0x0031,
     57  1.1  christos   0x0032, 0x0033, 0x0034, 0x0035, 0x0036, 0x0037, 0x0038, 0x0039,
     58  1.1  christos   0x0000, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0021, 0x0000,
     59  1.1  christos   0x0000
     60  1.1  christos };
     61  1.1  christos 
     62  1.1  christos const int TestStringsW[] = {
     63  1.1  christos   0x00000041, 0x00000042, 0x00000043, 0x00000044,
     64  1.1  christos   0x00000045, 0x00000046, 0x00000047, 0x00000048,
     65  1.1  christos   0x00000049, 0x0000004a, 0x0000004b, 0x0000004c,
     66  1.1  christos   0x0000004d, 0x0000004e, 0x0000004f, 0x00000050,
     67  1.1  christos   0x00000051, 0x00000052, 0x00000053, 0x00000054,
     68  1.1  christos   0x00000055, 0x00000056, 0x00000057, 0x00000058,
     69  1.1  christos   0x00000059, 0x0000005a, 0x00000000, 0x00000000,
     70  1.1  christos   0x00000000, 0x0000307b, 0x00003052, 0x0000307b,
     71  1.1  christos   0x00003052, 0x00000000, 0x00000030, 0x00000031,
     72  1.1  christos   0x00000032, 0x00000033, 0x00000034, 0x00000035,
     73  1.1  christos   0x00000036, 0x00000037, 0x00000038, 0x00000039,
     74  1.1  christos   0x00000030, 0x00000031, 0x00000032, 0x00000033,
     75  1.1  christos   0x00000034, 0x00000035, 0x00000036, 0x00000037,
     76  1.1  christos   0x00000038, 0x00000039, 0x00000030, 0x00000031,
     77  1.1  christos   0x00000032, 0x00000033, 0x00000034, 0x00000035,
     78  1.1  christos   0x00000036, 0x00000037, 0x00000038, 0x00000039,
     79  1.1  christos   0x00000000, 0x00000021, 0x00000021, 0x00000021,
     80  1.1  christos   0x00000021, 0x00000021, 0x00000021, 0x00000000,
     81  1.1  christos   0x00000000
     82  1.1  christos };
     83  1.1  christos 
     84  1.1  christos int
     85  1.1  christos main (void)
     86  1.1  christos {
     87  1.1  christos   /* Backward disassemble test requires at least 20 instructions in
     88  1.1  christos      this function.  Adding a simple bubble sort.  */
     89  1.1  christos   int i, j;
     90  1.1  christos   int n[] = {3, 1, 4, 1, 5, 9};
     91  1.1  christos   int len = sizeof (n) / sizeof (n[0]);
     92  1.1  christos 
     93  1.1  christos   for (i = 0; i < len - 1; ++i)
     94  1.1  christos     {
     95  1.1  christos       for (j = i; j < len; ++j)
     96  1.1  christos         {
     97  1.1  christos           if (n[j] < n[i])
     98  1.1  christos             {
     99  1.1  christos               int tmp = n[i];
    100  1.1  christos               n[i] = n[j];
    101  1.1  christos               n[j] = tmp;
    102  1.1  christos             }
    103  1.1  christos         }
    104  1.1  christos     }
    105  1.1  christos   return 42;
    106  1.1  christos }
    107