Кодпредставление
Оригинальный автор(ы) | Дэвид Норрис |
---|---|
Разработчик(и) | Майкрософт |
Первоначальный выпуск | 1985 год |
Операционная система | MS-DOS |
Платформа | х86 |
Тип | Отладчик |
CodeView — это автономный отладчик, созданный Дэвидом Норрисом из Microsoft в 1985 году как часть набора инструментов разработки. [1] Первоначально он поставлялся с Microsoft C 4.0 и более поздних версий. Он также поставлялся с Visual Basic для MS-DOS , Microsoft BASIC PDS и рядом других языковых продуктов Microsoft. [2] Это был один из первых отладчиков для MS-DOS, ориентированных на полноэкранный режим, а не на построчную ориентацию (как предшественники Microsoft DEBUG и SYMDEB или Digital Research SID компании ).
Обзор
[ редактировать ]При работе CodeView предоставляет пользователю несколько окон , которые можно размещать, перемещать, изменять размер и иным образом манипулировать ими с помощью клавиатуры или мыши, а CodeView 4.x обеспечивает более богатый интерфейс. Некоторые из окон включают в себя:
- Окно кода — в окне кода отображался отлаживаемый в данный момент код в контексте исходного кода .
- Окно данных – шестнадцатеричный дамп указанной пользователем области памяти.
- Окно просмотра – контекстное отображение переменных по имени.
- Окно Locals – контекстное отображение переменных, локальных для текущей функции.
- Окно команд — здесь можно вводить пользовательские команды (с использованием того же или похожего синтаксиса, что и DEBUG и SYMDEB).
- Окно сборки — отображалась сборка (машинный код), позволяющая пошагово выполнять функции.
- Окно регистра — для визуализации содержимого регистров 80x86 , включая сегменты, флаги и FPU (CodeView существовал до MMX и других SIMD ). расширений
- Окно вывода — окно, показывающее операции запуска и отладочную информацию, касающуюся точек останова. [2] аппаратные поломки (прерывания 0 и 3) и т. д.
Функции
[ редактировать ]- Режим 386 — процессоры 8086, 80286 и 80386 и более поздних версий. Расширенный режим 386 активируется с помощью опции меню, позволяющей использовать 32-битные регистры и дизассемблирование.
- Поддержка монохромного монитора — позволяет выполнять отладку либо на одном цветном мониторе (CGA, EGA или VGA) с переключением страниц/памяти между пользовательским приложением и экраном CodeView, либо на отдельном монохромном мониторе. Монохромный монитор существует в адресном пространстве памяти 0xb0000, тогда как цветной монитор находится в адресном пространстве 0xb8000 для текста и 0xa0000 для графики. Использование монохромного монитора с отдельным адресным пространством памяти позволяет отлаживать графические приложения, не затрагивая отображение, а также все текстовые режимы. Монохромные мониторы ограничены 25 строками, тогда как цветные мониторы допускают режим 25, 43 или 50 строк, что позволяет одновременно отображать больше информации на экране.
Создание символического вывода отладки, который позволяет просматривать ячейки памяти по именам, назначенным программистом, а также базу данных программы, показывающую строку исходного кода, связанную с каждой компьютерной инструкцией в двоичном исполняемом файле, включается переключателем командной строки -Zi, заданным для компилятору и -CO, переданному компоновщику. Такие варианты, как -Zs и -Zd, предоставляют меньше информации и меньшие по размеру выходные файлы, что в начале 1990-х годов было важно из-за ограниченных ресурсов компьютера, таких как память и емкость жесткого диска. Многие системы в то время имели объем памяти 8 МБ или меньше.
CodeView обрабатывает все модели программ, включая TINY, SMALL, COMPACT, MEDIUM, LARGE и HUGE, при этом TINY (файлы .COM на базе DOS) имеют символическую информацию отладчика, хранящуюся в отдельном файле, а все остальные форматы .EXE содержат символическая информация непосредственно внутри исполняемого файла. Это часто приводило к заметному увеличению размера, и поэтому некоторым разработчикам стало желательно использовать ключи #pragma в исходном коде C (а позже и C++), чтобы предотвратить символический вывод большей части приложения и вместо этого ограничивать этот вывод только те части, которые требовали этого для текущей отладки.
В версиях CodeView 3.x и 4.x представлены различные транспортные уровни, которые устранили некоторые ограничения по объему памяти для этой формы символьной отладки. Обычно отладчик работает в области памяти размером 640 КБ вместе с отлаживаемым приложением, что значительно уменьшает объем памяти, доступной для отлаживаемого приложения. Транспортный уровень позволяет существовать только заглушке в основной памяти, в то время как основная часть кода отладчика находится в EMS или XMS (память выше барьера в 1 МБ или за пределами обычного адресного пространства от 0 КБ до 640 КБ, обычно используемого программами DOS). ). CodeView также поставляется с утилитой командной строки CVPACK, которая может уменьшить размер внутренней информации, генерируемой CodeView, сохраняя при этом полный символьный доступ к данным.
Поддержка Visual C++
[ редактировать ]Microsoft выпустила Visual C++ 1.0 с функциональностью CodeView, интегрированной непосредственно в единую среду программирования, известную как интегрированная среда разработки (IDE), хотя CodeView все еще был доступен в 16-битных версиях Visual C++. QuickC и ряд других инструментов разработки из серии Quick также поддержали переход к IDE с одним исходным кодом, которая стала предшественником современной среды разработки Visual Studio, а также моделью для бесчисленного множества других наборов инструментов разработчика.
Эта интеграция рассматривалась многими разработчиками как более естественный способ разработки программного обеспечения, поскольку и кодирование, и отладка могли выполняться без переключения программ или контекста, и все из одного и того же логического места (хотя внутри было запущено множество отдельных программ для поддержки редактирования, компиляции). и отладка). В результате большинство инструментов и/или платформ разработки предлагают схожие продукты или функции.
Сегодня отладчик считается интегрированной и важной частью семейства продуктов Microsoft Visual Studio и обязан своим истинным происхождением CodeView и усовершенствованиям, представленным, в частности, в версии 4.x.
Симдеб
[ редактировать ]Еще одним продуктом отладки, доступным от Microsoft в середине 1980-х годов, был SYMDEB . [3]
Он имел более 30 команд и был описан журналом PC Magazine как шаг вперед по сравнению с DEBUG. [4] Codeview, в свою очередь, описывался как «полноэкранный SYMDEB». [5] [6]
См. также
[ редактировать ]- Борланд Турбо-отладчик
- СофтICE
- модели памяти x86
- Отладчик Microsoft Visual Studio
- База данных программы . Форматы и типы CodeView по-прежнему присутствуют в отладочной информации, создаваемой современными инструментальными цепочками C++. [7]
Ссылки
[ редактировать ]- ^ «CodeView 3.x» . WinWorld .
- ^ Перейти обратно: а б Microsoft Macro Assembler 5.1 — Microsoft CodeView и утилиты . Корпорация Майкрософт . 1987. с. 157. Документ № 4108-40010-500-Р03-1287.
- ^ Пар, Джефф (25 февраля 2018 г.). «Краткая история SYMDEB» . PCjs-машины . Проверено 19 мая 2019 г.
- ^ «SYMDEB: шаг вперед по сравнению с Debug» . Мир ПК . 14 октября 1986 г. п. 296.
- ^ «СИМДЕБ». Журнал ПК . Том. 5, нет. 17. Зифф Дэвис, Инк. , 30 сентября 1986 г. п. 38. ISSN 0888-8507 .
- ^ «Добавлена документация MS C 4.0» . OS2museum.com .
- ^ «Записи типов CodeView — документация LLVM 13» . llvm.org . Проверено 19 декабря 2021 г.
Дальнейшее чтение
[ редактировать ]- Петцольд, Чарльз (1990). Программирование Windows: Руководство Microsoft по написанию приложений для Windows 3 . ISBN 9781556152641 .
- Руководство пользователя отладчика CodeView . Корпорация Майкрософт . 1993.