adfun.ru
| |
BIGLIB |
| большущая библиотека (9812 книг), можно не только прочитать но и скачать бесплатно |
|
| |
ФАНТАСТИКА |
| фентези,
фантастика, фантастические повести |
|
| |
ФИЛОСОФИЯ |
книги, которые заставляют
задуматься над окружающим тебя миром.
|
|
| |
МЕДИЦИНА |
медицинские книги,
методички,
народные лечебники |
|
| |
КУЛИНАРИЯ |
рецепты
тортов, консервирование,
все о спиртных
напитках. |
|
| |
СТИХИ |
| стихи популярных
и не очень авторов |
|
| |
ТВОРЧЕСТВО |
| народное творчество,
стихи, песни и т.д. |
|
| |
ЮМОР |
| анекдоты, приколы,
смешные истории |
|
| |
ЭРОТИКА |
| эротические рассказы,
книги о технике секса,
кама-сутра и др. |
|
|
| |
 |
Если вы хотите указать Турбо отладчику, что идентификатор
нужно искать в каком-то конкретном месте, то при указании имени
идентификатора можно задать имя модуля, файл в модуле и подпрог-
рамму. Вы можете получить доступ к любому идентификатору програм-
му, значение которого определено, даже к тем идентификаторам, ко-
торые являются локальными для процедуры или функции и имена кото-
рых входят в конфликт с другими идентификаторами.
TDeb 3.0 #2-3 = 9 =
Синтаксис переопределения области действия
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
В зависимости от используемого языка, для переопределения
области действия идентификатора с данным именем используются
разные символы.
- В Си, С++ и Турбо Ассемблере для переопределения области
действия используется обычно символ #.
- В Паскале с этой целью можно использовать точку (.).
Выражение с уточненным идентификатором можно вводить везде,
где допустимо выражение, включая:
- диалоговое окно Evaluate/Modify;
- окно Watches;
- диалоговое окно DataіInspector;
- диалоговое окно, выводимое командой локального меню Goto
или окно Module (когда вы хотите перейти на адрес исходно-
го кода).
Переопределение области
действия в программах Си, С++ и Ассемблера
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
Для разделения компонентов области действия используйте сим-
вол #.
Таким образом, для переопределения области действия использу-
ется следующий синтаксис (в квадратные скобки заключены необяза-
тельные элементы):
[#модуль[#имя_файла]]#номер_строки[#номер_переменной]
или
[#модуль[#имя_файла]][#имя_функции]#имя_переменной
Примечание: Переопределение области действия не дейс-
твуют для регистровых переменных.
Если вы не задаете модуль, то подразумевается текущий мо-
дуль.
Например, в окне Watches вы можете для переменной программы
TDDEMO nlines ввести разные номера строк, чтобы увидеть, как из-
меняется ее значение в различных подпрограммах. Чтобы наблюдать
за значением переменной на строке 42 и 57, можно ввести в окне
Watches следующую запись:
TDeb 3.0 #2-3 = 10 =
#41#nlines
#57#nlines
Приведем некоторые примеры допустимых выражений для иденти-
фикаторов с переопределением области действия (каждой допустимой
комбинации элементов, которые можно использовать для переопреде-
ления области действия соответствует один пример).
В первых 6 примерах показаны различные способы использова-
ния номеров строк для генерации адресов и переопределения области
действия:
#123
(Строка 123 в текущем модуле.)
#123myvar1
(Идентификатор myvar1 доступен из строки 123 текущего мо-
дуля.)
#mymodule#123
(Строка 123 в модуле #mymodule.)
#mymodule#123#myvar1
(Идентификатор myvar1 доступен из строки 123 в модуле
mymodule.)
#mymodule#file#123
(Строка 123 в исходном файле file, который является
частью модуля mymodule.)
#mymodule#file#123#myvar1
(Идентификатор myvar1 доступен из строки 123 в исходном
файле file1, который является частью модуля mymodule.)
Следующие 6 примеров показывают различные способы переопре-
деления области действия переменной с использованием имени моду-
ля, файла или функции:
#myvar2
(То же, что и myvar2 без #.)
#myfunc#myvar2
(Переменная myvar2 доступна из подпрограммы myfunc.)
TDeb 3.0 #2-3 = 11 =
#mymodule#myvar2
(Переменная myvar2 доступна из модуля mymodule.)
#mymodule#myfunc#myvar2
(Переменная myfunc доступна из подпрограммы myfunc в мо-
дуле mymodule.)
#mymodule#file2#myvar2
(Переменная myvar2 доступна из файла file2, являющегося
частью модуля mymodule.)
#mymodule#file2#myfunc#myvar2
(Переменная myvar2 доступна из подпрограммы myfunc, опре-
деленной в файле file2, который входит в модуль
mymodule.)
Следующие 4 примера показывают переопределения области дейс-
твия для классов, объектов и функций-элементов С++:
AnObject#AMemberVar
Элемент данных AMemberVar доступен в объекте AnObject, дос-
тупном в текущей области действия.
AnObject#AMemberF
Функция-элемент AMemberF доступна в объекте AnObject, дос-
тупном в текущей области действия.
#AModule#AnObject#AClass::AMemberVar
Элемент данных AMemberVar в классе AClass доступен в объекте
AnObject, доступном в модуле AModule.
Если при отладке программы на языке С++ вы хотите проверить
функцию с переопределенным именем, то для этого в соответствующем
поле ввода просто введите имя функции. Турбо отладчик открывает
диалоговое окно Pick a Symbol Name (Выбор имени идентификатора)
со списком всех функций с данным именем вместе с их аргументами.
Вы можете выбрать то, что вам нужно.
TDeb 3.0 #2-3 = 12 =
Некоторые замечания по переопределению области действия
ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДД
При переопределении области действия в программах на языках
Си, C++, Паскаль или Ассемблер вам могут помочь следующие замеча-
ния:
1. Если вы используете имя файла с оператором переопределе-
ния области действия, то ему должно предшествовать имя
модуля.
2. Если имя файла имеет расширение (.ASM, .C или .CPP), то
вы должны указать расширение. Турбо отладчик сам расшире-
ние не распознает.
3. Если первым элементом в операторе переопределения области
действия является функция, то перед ней не должен указы-
ваться символ #. При наличии символа # Турбо отладчик ин-
терпретирует имя функции как имя модуля.
4. Любая переменная, к которой вы обращаетесь с помощью пе-
реопределения области действия, уже должна быть инициа-
лизирована.
5. Если вы пытаетесь получить доступ к динамической локаль-
ной переменной, лежащей вне области действия, то в ка-
честве части операторе переопределения области действия
|
adfun.ru
|
|
|
|