TMON (2010)

tmon2010

Для Mac есть несколько отличных отладчиков исходного уровня, но все они являются программами, которые зависят от набора инструментов, чтобы взаимодействовать с вами и рисовать на экране элементы, которые помогут вам понять, что идет не так. Когда ваша программа действительно находится в тяжелом положении и вместе с ней вырубает операционную систему, ничто не заменит отладчик, которому не нужна работающая операционная система. Для Macintosh до OSX это обычно был Macsbug. Macsbug был великолепен, потому что он был таким простым. Он не рисовал окна и не использовал мышь. Вы могли бы ввести загадочные двухбуквенные команды, если бы вы могли их запомнить, и попытаться понять, что Macsbug напечатал вам в ответ. Если повезет, вы можете узнать, как ваша программа убила себя (и, возможно, операционную систему тоже). У меня есть пара книг по Macsbug, которые я перечитываю снова и снова, в основном просто пытаясь запомнить команды. Я кое-что помню и кое-что использовал. Несмотря на все мои усилия, мне никогда не нравился Macsbug. Вероятно, это было потому, что я видел что-то, что делало ту же работу, но было намного лучше.

TMON был написан Вальдемаром Хорватом. Он почти всегда использовался с дополнительным дополнением, называемым User Area, написанным Дарином Адлером. Оба они были еще детьми в то время, когда работали над TMON. Дарин Адлер учился в колледже, а Вальдемар Хорват еще не окончил среднюю школу. Согласно аккаунту Дарина Адлера , Хорват написал все (на ассемблере) до того, как попытался собрать его. Они работали в TMQ Software, компании, которая прославилась созданием некоторых классических игр для Macintosh, «Deja Vu» (на самом деле 2 игры), «Uninvited» и «ShadowGate». Хорват и Адлер работали над некоторыми играми, а также над отладчиком TMON. Название компании в какой-то момент было изменено на ICOM Simulations, и каждая версия TMON, которую я видел, публиковалась под этим именем. И Хорват, и Адлер сделали выдающуюся карьеру после работы в TMON. Дарин Адлер присоединился к Apple и стал техническим руководителем команды, создавшей System 7. Он также работал над легендарной Magic Cap с Биллом Аткинсоном и Энди Херцфельдом. Вальдемар Хорват получил степень в области компьютерных наук в Массачусетском технологическом институте, где он работал над архитектурами для крупномасштабной многопроцессорной обработки. После этого он также некоторое время работал над Magic Cap и занимался другими делами, в том числе был архитектором языка javascript. Как и многие иллюминаты Mac, теперь он работает в Google. Он также опытный профессиональный фотограф.

Почему TMON был таким классным.

TMON – это просто отладчик на уровне объекта. Как и все подобные программы, он позволяет вам проверять и изменять произвольные места в памяти, дизассемблировать машинный код и отображать его на языке ассемблера, проверять и изменять значения в регистрах, устанавливать точки останова в коде и выполнять код поэтапно. То, что делало TMON особенным, было тем же, что делало особенным Macintosh. Это был пользовательский интерфейс. Не полагаясь на набор инструментов или другие части операционной системы, TMON создавал окна, меню и использовал мышь, чтобы создать удивительно похожий на Mac подход к отладке. Использование мыши особенное. Обычно из-за сбоя мышь перестает работать («зависание мыши»). Вы не ожидаете, что отладчик низкого уровня будет надежно использовать мышь. Но если вы окажетесь в TMON после зависания мыши, вы просто набираете Command-M и … мышь снова работает. Работа в отладчике с использованием окон и мыши была настолько простой, что TMON каким-то образом стал чем-то большим, чем отладчик. Это стало инструментом исследования для системы Mac. Попробуйте сами. Он отлично работает в Mini vMac. Для его установки поместите программу TMON и TMONStartup в системную папку и перезагрузитесь. Для входа в TMON можно просто запустить программу, которая вылетает. Таких у меня всегда было много. Если у вас нет под рукой, просто нажмите переключатель программатора (на реальном Mac) или удерживайте элемент управления и введите iy в Mini vMac. Ваш рабочий стол все еще на месте, но панель меню закрывается более простой панелью кнопок TMON, и появляются два крошечных окна, в одном из которых рассказывается, почему вы вошли в TMON (прерывание 5, если вы только что прервали работающую систему), а в другом – добро пожаловать в Монитор и напоминает о своем авторе. Кнопки на панели, которые заменили строку меню вашего Mac, при нажатии открывают окна. Кнопка Dump откроет окно для проверки памяти. Сборка открывает представление о памяти, интерпретируемой как код. Вертикальный размер окон регулируется перетаскиванием прямоугольника в нижнем правом углу, а вертикальное положение можно регулировать, перетаскивая окно (из любого другого места). Горизонтальный размер фиксируется на всю ширину дисплея. Окна прокручиваются с помощью стрелок на полосе прокрутки (большого пальца нет). Рядом с каждым окном есть закрывающий ящик, чтобы вы могли убрать его, когда закончите с ним. Вы можете открыть несколько окон, и они могут перекрывать друг друга. Это не совсем похоже на обычный пользовательский интерфейс Mac, но он достаточно близок, чтобы вы сразу во всем разобрались. Есть хорошее руководство для TMON, написанное Полом Снивли, и оно включает техническую справку самого Вальдемара Хорвата. Возможно, вы сможете найти его где-нибудь в строке .

Окно операционной системы

Окно разборки – отличный инструмент, чтобы просто осмотреться. Откройте один и начните разборку с позиции 100 (шестнадцатеричный).

Это начало знаменитой области глобальных файлов с низким объемом памяти. Операционная система использует около 2600 байтов, начиная с этого места, для сохранения различной информации о своем состоянии. Первый элемент – это знаменитый глобальный проект MonkeyLives, который упоминается в одноименной истории на folklore.org (прочтите, что сказка!). Следующие два дают разрешение экрана по вертикали и горизонтали в пикселях на дюйм, оба из которых имеют значение 68 (шестнадцатеричный, 72 десятичный). Это более 1990 этих глобальных переменных, каждый из которых содержит некоторую ключевую информацию о состоянии машины в любое время. Некоторые из них, например, разрешение экрана, меняются нечасто. Другие сильно меняются. Вы не могли бы подумать, что какой-либо из них будет меняться, пока вы смотрите на них в отладчике, но по крайней мере один из них изменится. Прокрутите вниз до места 27 A, (или введите это число в поле «Разборка из» ), чтобы найти тот, который называется Ticks. TMON обновляет их достаточно часто, чтобы вы могли видеть, как это происходит. Конечно, вы смотрите на них в окне Disassembly, поэтому значение Ticks неправильно интерпретируется как код, а не как число. Откройте окно дампа и закрепите его в 16 A, чтобы увидеть правильное значение Ticks (в шестнадцатеричном формате), по прошествии времени.