Турбо С: руководство пользователя. Часть 1

Турбо С: руководство пользователя. Часть 1 - Стр. 16

Печать PDF
Индекс материала
Турбо С: руководство пользователя. Часть 1
Стр. 2
Стр. 3
Стр. 4
Стр. 5
Стр. 6
Стр. 7
Стр. 8
Стр. 9
Стр. 10
Стр. 11
Стр. 12
Стр. 13
Стр. 14
Стр. 15
Стр. 16
Стр. 17
Стр. 18
Стр. 19
Стр. 20
Стр. 21
Стр. 22
Стр. 23
Стр. 24
Стр. 25
Стр. 26
Стр. 27
Стр. 28
Стр. 29
Стр. 30
Стр. 31
Стр. 32
Стр. 33
Стр. 34
Стр. 35
Стр. 36
Стр. 37
Стр. 38
Стр. 39
Стр. 40
Стр. 41
Стр. 42
Стр. 43
Стр. 44
Стр. 45
Стр. 46
Стр. 47
Стр. 48
Стр. 49
Стр. 50
Стр. 51
Стр. 52
Стр. 53
Стр. 54
Стр. 55
Стр. 56
Стр. 57
Стр. 58
Стр. 59
Стр. 60
Стр. 61
Стр. 62
Стр. 63
Стр. 64
Стр. 65
Стр. 66
Стр. 67
Стр. 68
Стр. 69
Все страницы
     -----------------------------------------------------------------          
                                                                                
          Интегрированная среда Турбо Си  включает  отладчик,  который          
     называется интегрированным отладчиком.  В этой главе мы объясним,          
     как пользоваться отладчиком Турбо Си.                                      
                                                                                
          Глава начинается с серии примеров,  демонстрирующих примене-          
     ние  отладчика.  В первом примере показаны простейшие возможности          
     распознавания "легких" ошибок.  И следующие примеры  иллюстрируют          
     более сложные возможности отладчика.                                       
                                                                                
          Затем будет рассмотрено меню команд отладчика с соответству-          
     ющими "горячими" клавишами или комбинациями "горячих"  клавиш,  а          
     также будет дано описание каждой команды.                                  
                                                                                
          И, наконец, мы дадим несколько советов, облегчающих отладку.          
     Многие из этих советов касаются не только самого процесса  отлад-          
     ки,  но и того,  как вообще лучше писать программы, поэтому боль-          
     шинство из этих идей вы можете применять не только в Турбо Си, но          
     и в любых других языках программирования.                                  
                                                                                

                         - 127,128 -
                                                                                
               Как работает интегрированный отладчик                            
     -----------------------------------------------------------------          
                                                                                
          Интегрированный отладчик Турбо Си - это символьный отладчик,          
     работающий в терминах языка программирования.  Это значит, что вы          
     можете "общаться" с отладчиком с помощью того же языка,  на кото-          
     ром написана ваша программа.  Например, вы можете просмотреть ве-          
     личину элемента массива, указав его отладчику с помощью следующе-          
     го выражения:                                                              
                                                                                
          rptr->image[nptr+0x80]                                                
                                                                                
          Отлаживать свою программу вы сможете просто  запустив  ее  с          
     помощью  элемента меню Run/Run ("горячая" клавиша Ctrl-F9).  При-          
     чем,  для подключения отладчика к вашей программе,  необходимо ее          
     откомпилировать  с  "установленным"  (On)  вариантом  меню Source          
     Debugging.   (Установить   этот   вариант   меню   можно   выбрав          
     Debug/SOURCE Debugging).                                                   
                                                                                
          Перед выполнением программы вы можете установить в ней точки          
     останова,  указав их в одной  или  нескольких  строках  исходного          
     текста  вашей  программы.  Когда  отлаживаемая программа встретит          
                                                                                
     точку останова, она остановится перед первым оператором строки, в          
     которой эта точка задана,  и возвратит вам управление отладчиком.          
                                                                                
          В момент  остановки программы вы можете выполнять самые раз-          
     личные действия. Например, вы можете:                                      
                                                                                
          # вывести значение переменной или выражения;                          
                                                                                
          # задать в специальном окне список выражений и наблюдать за           
     изменениями их значений;                                                   
                                                                                
          # изменить значение переменной;                                       
                                                                                
          # удалить  существующую  точку останова или  задать новую;            
                                                                                
          # выполнить одну строку программы;                                    
                                                                                
          # исправить файл,  перекомпилировать и перекомпоновать прог-          
     рамму или использовать любые другие возможности меню системы Тур-          
     бо Си;                                                                     
                                                                                
          # продолжить выполнение программы до тех пор, пока не встре-          

                         - 129,130 -
                                                                                
     тится другая точка останова.                                               
                                                                                
          Рисунок 4.1 иллюстрирует типичный алгоритм  сеанса  отладки.          
     (Заметьте, что на нем не показаны возможности отладчика на каждом          
     отдельном шаге.)                                                           
                                                                                
                             ЪДДДДДДДДДДДДДДДДДДДДДї                            
                             іНаписание или модифи-і                            
                             і  кация программы    і                            
                             АДДДДДДДДДДВДДДДДДДДДДЩ                            
          ЪДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ                                       
          і                 ЪДДДДДДДДДДДБДДДДДДДДДДДДДДДДДї                     
          і                 іСоздание (компиляция и компо-і                     
          і                 і      новка) программы       і                     
          і                 АДДДДДДДДДДДВДДДДДДДДДДДДДДДДДЩ                     
          і                             і                                       
          і                                                                     
          і                                                                     
       ЪДДБДДДДДДДДї   Да             Ошибки                                    
       іИсправлениеГДДДДДДД      компиляции и/или                               
       і  ошибок   і              редактирования ?                              
       АДДВДДДДДДДДЩ                                                            
                                                                                
          і                             і                                       
          і                             іНет                                    
                                                         
                                                                                
     #define MAXWORDLEN  16                                                     
     #define NULL        ((char)0)                                              
     #define SPACE       ((char)0x20)                                           
                                                                                
     /*****                                                                     
     * Find the next word in the line buffer.                                   
     * IN:      wordptr points to the first character of a word or a            
     *          preceding space.                                                

                         - 133,134 -
                                                                                
     * RETURN:  A pointer to the first character of the word. If there          
     *          are no more words, a pointer to the terminating NUL.            
     *****/                                                                     
                                                                                
     char *nextword(char *wordptr)                                              
     {                                                                          
     /* Advance to the first non-space. */                                      
          while ( *wordptr==SPACE )                                             
               wordptr++;                                                       
          return (wordptr);                                                     
     }                                                                          
     /*****                                                                     
     * Find the length of a word. A word is defined as sequence of              
     * characters terminated by a space or a NUL.                               
     * IN: wordptr points to a word.                                            
     * RETURN: The length of the word.                                          
     *****/                                                                     
                                                                                
     int wordlen(char *wordptr)                                                 
     {                                                                          
          char *wordlimit;                                                      
                                                                                
                                                                                
          wordlimit = wordptr;                                                  
          while ( *wordlimit & *wordlimit!=SPACE )                              
               *wordlimit++;                                                    
          return(wordlimit-wordptr);                                            
     }                                                                          
                                                                                
     /*****                                                                     
     * The main function.                                                       
     *****/