Отладчик Xcode - как сделать один шаг на уровне инструкций процессора - PullRequest
10 голосов
/ 05 января 2010

Это определенно навязчиво, но я восхищен тем, насколько умно компилятор переводит код C в машинные инструкции. Поскольку я немного нечеткий в отношении некоторых инструкций, было бы полезно, если бы я мог наблюдать за работой скомпилированной программы на уровне отдельных машинных инструкций - «ниже» уровня оператора C (который может генерировать несколько инструкций процессора). Другими словами, можно ли наблюдать за изменениями регистров / памяти после одной машинной инструкции?

Я уверен, что это возможно с некоторыми другими отладчиками, но я использую только Xcode.

Ответы [ 4 ]

8 голосов
/ 16 ноября 2012

С помощью отладчика можно использовать команды перехода, перехода и выхода Xcode. Хитрость заключается в том, чтобы удерживать клавишу ctrl (Control) при наведении указателя мыши на значки шагов отладчика, чтобы изменить контекст. Под каждым значком шага линия изменится на точку, и вы сможете перейти на уровень инструкции.

См. Прикрепленный скриншот, выделенный красным овалом.

screenshot

3 голосов
/ 06 января 2010

si - это «пошаговая инструкция», а ni - «следующая инструкция». Они имеют ту же семантику, что и «step» и «next» для строк кода, только на уровне команд.

2 голосов
/ 05 января 2010

В окне «Отладчик» включите сборку: «Запуск» / «Отладчик» / «Источник» и «Разборка». Подождите, пока вы не достигнете точки останова. Затем используйте команду Run / Step into (over) для перехода в сборку.

0 голосов
/ 06 января 2010

Упс, проверка не прошла достаточно внимательно - Step Into w / Option (Cmd-Opt-Shft-I = ⌘⌥⇧I)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...