adfun.ru
 
BIGLIB
  большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно
 
АСТРОЛОГИЯ
  книги по астрологии
 
КРИМИНАЛ
  книги про криминал
 
ДЕТЕКТИВЫ
  детективы известных
   писателей
 
ФАНТАСТИКА
  фентези, фантастика,   фантастические повести
 
ПРИКЛЮЧЕНИЯ
  книги про приключения,   путешествия
 
ПОЛИТИКА
  книги про политиков,   репрессии
 
ПСИХОЛОГИЯ
  разнообразная литература   по психологии
 
КЛАССИКА
  классическая литература
 
КОМПЬЮТЕРНАЯ
  ЛИТЕРАТУРА
  про компютерное железо,   документация, языки   программирования
 
РЕЛИГИЯ, АТЕИЗМ
  книги про религию
 
ФИЛОСОФИЯ
  книги, которые заставляют   задуматься над   окружающим тебя миром.
 
ЭНЦИКЛОПЕДИИ
  самые интересные   энциклопедии на
   разные темы
 
МЕДИЦИНА
  медицинские книги,   методички,
   народные лечебники
 
КУЛИНАРИЯ
  рецепты тортов,   консервирование,
  все о спиртных
  напитках.
 
СТИХИ
  стихи популярных и не   очень авторов
 
ТВОРЧЕСТВО
  народное творчество,   стихи, песни и т.д.
 
ЮМОР
  анекдоты, приколы,   смешные истории
 
ЛЮБОВНЫЙ РОМАН
  мир высоких чувств и   любовных грез
 
ЭРОТИКА
  эротические рассказы,   книги о технике секса,   кама-сутра и др.




adfun.ru
Rambler's Top100 Rambler's Top100
    НА ГЛАВНУЮ
    РЕФЕРАТЫ
    ТОСТЫ
    ТЕСТЫ
    АВТО
    ДЛЯ СТУДЕНТА
    КНИГИ
    КОНТАКТ
 
Turbo Debugger 3.0 #2-3
Автор ""
Размер 408406 Байт
Страница 38 из 40
СКАЧАТЬ КНИГУ ЦЕЛИКОМ


               Tail^.Parm^

            Это позволяет  отслеживать  строковые  данные,  хранящиеся в
       последнем узле списка.  Конечно,  до инициализации на строке  207
       это значение будет содержать "мусор".

            Вместо того, чтобы выполнять программу по шагам, просто сле-
       дите за окном Watch в конце каждой итерации.  Переместите  курсор
       на  строку  208 и нажмите клавишу F2,  чтобы установить там точку
       останова.  Теперь,  чтобы выполнить программу до точки  останова,
       нажмите клавишу F9. Если вы используете DOS версии 3.х, то в окне
       просмотра вы увидите полный маршрут доступа  к  TPDEMOB.EXE  (при
       работе  под управлением DOS 2.x вы увидите пустую строку,  в этом
       случае просто нажмите клавишу F9 и работайте дальше). Строка дан-
       ных выглядит, как и требуется.

            Нажмите клавишу  F9,  чтобы  выполнить цикл еще раз.  Данные
       опять выглядят правильно. Теперь вы знаете, что строка копируется
       в динамически распределяемую область памяти правильно.  Можно ис-
       пользовать окно Inspector (Проверка) и посмотреть,  не повреждены
       ли  еще  данные.  Переместите  курсор  к  Head  и нажмите клавиши
       Atl-F10 I.

       TDeb 3.0 #2-3               = 161 =


            Нажав клавишу Enter, посмотрите на значение, на которое ссы-
       лается Parm.  Вы смотрите на первый элемент списка, и его строко-
       вые данные уже повреждены.  Если вы нажмете клавишу Esc,  стрелку
       вниз,  а затем снова клавишу Enter, то вы откроете окно Inspector
       (Проверка) для второго узла (элемента)  списка.  Нажмите  клавишу
       Enter, чтобы проверить строковые данные. Они не запорчены, факти-
       чески,  на тот же узел ссылается указатель Tail. Очевидно, что-то
       не так с концом строковых данных.

            Следите за окном Watch,  когда вы используете клавишу F7 для
       выполнения  цикла.  На  строке  199  содержится  вызов  процедуры
       GetMem, перед этим вызовом Tail^.Parm^ равно первому символу. Не-
       посредственно после вызова GetMem последний символ  в Tail^.Parm^
       уничтожается.

            Что происходит?  Для  каждого  параметра  командной строки в
       цикле for сначала выделяется запись,  затем строковые данные, за-
       тем следующая запись и т.д. При вызове GetMem на строке 198 долж-
       но выделяться достаточно памяти для строки, плюс байта длины, но,
       как можно заметить, к Length(s) не прибавляется 1. Хотя на строке
       199 строка успешно копируется,  для нее на самом деле выделено на
       1 байт меньше,  чем она использует.  Таким образом, первый символ
       строки перекрывается первым байтом следующей  записи,  выделенной
       при обращении к процедуре New(Temp).  Последний параметр остается
       незапорченным, так как на ним не следует другая ParmRec.

            Это все известные нам ошибки в программе.  Возможно  при  ее
       выполнении вы найдете какие-то еще. Вы можете исправить эти ошиб-
       ки, а затем перекомпилировать программу (для удобства они отмеча-
       ются  двумя звездочками (**)),  или запустить TPDEMO.EXE - версию
       программу, о которой рассказывалось в Главе 3 и в  которой ошибок
       нет.


       TDeb 3.0 #2-3               = 162 =

       Глава 15. Виртуальная отладка с использованием процессора 80386
       ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

            Турбо отладчик позволяет вам полностью использовать произво-
       дительность систем,  основанных на процессоре 80386.  Виртуальная
       отладка  позволяет отлаживаемым программам полностью использовать
       адресное пространство, превышающее 640К (как при отсутствии в па-
       мяти отладчика), поскольку Турбо отладчик загружается в расширен-
       ную память выше 1Мб..

            Отладка выполняется так же,  как при  обычном  использовании
       Турбо отладчика,  только когда загружается драйвер  TDH386,  ваша
       программа  загружается и выполняется с того же адреса,  как и при
       обычном выполнении (без отладчика). Это может оказаться очень по-
       лезным  как  при отладке больших программ,  так и при обнаружении
       ошибок,  которые исчезают,  если программа загружается в  старшие
       адреса памяти.

            Виртуальная отладка также позволяет вам наблюдать за чтением
       и записью в произвольные ячейки памяти или ввода-вывода, не утра-
       чивая  при этом (или почти не утрачивая) скорости выполнения. Это
       без  дополнительной  оплаты  позволяет  использовать  все  мощные
       средства аппаратной отладки.

            Если у вас имеется процессор 80286,  то с помощью отладчика,
       работающего в защищенном режиме (TD286) вы можете получить в свое
       распоряжение больше памяти,  чем при обычной работе с отладчиком.
       Более подробно об этом рассказывается в Главе 16.

          Аппаратные средства, необходимые для виртуальной отладки
       ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД

            Чтобы можно было использовать виртуальный отладчик,  в вашем
       компьютере должен применяться процессор 80386. Вы должны распола-





гать также расширенной (extended) памятью объемом не менее 640К. Если вы используете расширенную память для псевдодисков, буферов и т.д., то может потребоваться создание специальных версий файлов CONFIG.SYS или AUTOEXEC.BAT, которые нужно будет использовать при виртуальной отладке. Установка драйвера устройства для виртуального отладчика ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Перед запуском виртуального отладчика нужно убедиться, что вашем файле CONFIG.SYS установлен драйвер устройства. Установить его можно, включив в данный файл следующую строку: DEVICE = TDH386.SYS Если драйвер TDH386.SYS содержится у вас не в корневом ката- логе, а в другом месте, то нужно указать маршрут доступа. Обычно виртуальный отладчик позволяет вам использовать до TDeb 3.0 #2-3 = 163 = 256 байт строк, задающих параметры операционной среды DOS. Если этого недостаточно, или вам не нужен такой объем и вы хотите сэ- кономить возможно больше памяти, используйте в файле CONFIG.SYS параметр -e, который задает число байт операционной среды. Напри- мер: DEVICE = TDH386.SYS -e2000 резервирует 2000 байт для переменных операционной среды DOS. Запуск виртуального отладчика ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД Запускается виртуальный отладчик точно также, как обычный сеанс работы с Турбо отладчиком командой: TD386 [параметры] [программа [параметры_программы]] Другими словами, вместо TD указывается просто TD386. При этом будет выполняться поиск выполняемой программы Турбо отладчи- ка и загрузка ее в расширенную память. Если у вас есть другие программы или драйверы устройств, ис- пользующие расширенную память (псевдодиски, буферы и др.), вы должны указать TD386, сколько памяти занимают эти программы. Это можно сделать с помощью параметра командной строки -e, за которым указывается объем (в килобайтах) расширенной памяти, используемой другими программами, например: TD386 -e512 myprog Эта командная строка сообщает TD386, что вы хотите зарезер- вировать для других программ первые 512К расширенной памяти. Обычно, если в вашей системе поддерживается стандарт XMS, вовсе не обязательно сообщать TD386, сколько памяти нужно оста- вить для программ в расширенной памяти - программы уже передали эту информацию TD386. Параметр -e нужно использовать только с программами (такими, как VDISK), которые не взаимодействуют со стандартом XMS. Поскольку вы, вероятно, всегда резервируете один и тот же объем расширенной памяти, TD386 дает вам способ постоянного зада- ния объема резервируемой памяти. Чтобы сообщить, что вы хотите постоянно установить значение параметра -e в выполняемом файле TD386, используйте параметр -w. Вам будет выведена подсказка, в ответ на которую нужно ввес- ти имя выполняемой программы. Если вы работаете в DOS версии 3.0 или старше, в подсказке будет указываться маршрут доступа к ката- логу и имя файла, из которого запущен TD386. Вы можете использо- вать это имя, нажав клавишу Enter, или ввести имя нового выполня- емого файла. Файл с этим именем должен существовать и TDeb 3.0 #2-3 = 164 = представлять собой копию программы TD386. Если вы работаете под управлением DOS версии 2.х, вам при- дется указать полное имя выполняемой программы TD386 (с маршру- том). Перечислим параметры командной строки TD386.EXE: ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД -?, -h Выводит справочную информацию по TD386. -b Позволяет вам прерывать выполнение программы с помощью клавиш Ctrl-Break, даже когда запрещены прерывания. -e#### Задает, сколько килобайт расширенной памяти используют- ся другими программами или отлаживаемой вами программой (данный параметр указывать не требуется, если ваша систе- ма поддерживает стандарт XMS). -w Модифицирует TD386.EXE новым используемым по умолчанию значением -e или -f. -f#### Разрешает эмуляцию EMS с помощью страничного обмена (в расширенной памяти) и устанавливает сегмент границы стра- ницы в значение #### (шестнадцатиричное). Последние три


Страницы : 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


adfun.ru









Форум раскрутка сайта и интернет-реклама
реклама - рекламное агентство -
Интернет PR агентство чат и форум
волчат знакомства - сайт знакомств
бесплатные компьютерные игры
фото знакомства
новые стеклопакеты -
качественное остекление балконов
портал - пластиковые окна -
закажите окна пвх в Москве

частная стоматология в Москве:
надежная стоматологическая клиника
протезирование зубов и
отбеливание зубов в стоматологии
Музыка - скачать mp3 музыка
каталог партнерские программы
ручной бесплатный обмен ссылками цифровые камеры цифровые фотоаппараты -
цифровые видеокамеры

театры - заказ билетов в театр -
магазин - продажа компьютеров
в Москве форум Испания - жилье -
недвижимость в испании

турфирма - испания туры
Переводы - бюро переводов
Законы - закон о товарных знаках,
Грузовые перевозки. АсМАП. Дальнобой закон о рекламе
Интернет казино
реклама на форуме и контекстная реклама
на Яндексе Баннерная сеть и
интернет каталог сайтов Holiday.Ru
Форумы политика, лучшие анекдоты
знакомства.