Вопрос по objective-c, xcode – Просмотр переменных в Xcode

18

Я пытаюсь посмотреть переменную с помощью Xcode. Я следую инструкциям вВот сделав паузу в точке останова, выбрав Run & gt; Просмотр переменных & gt; .... но за исключением & quot; Включить средства форматирования данных & quot; все остальные варианты неактивны. Есть идеи?

Я использую XCode версии 3.1.3.

@zPesk & # x2014; Обратите внимание, что & quot; точки наблюдения & quot; отличаются от «контрольных точек». Первые предназначены для мониторинга определенного адреса данных, вторые - для остановки в данной строке кода. Quinn Taylor
Как только вы дойдете до точки останова, вы сможете навести указатель мыши на точку останова, и она покажет информацию о переменных. zpesk
Вы уверены, что используете отладочную сборку с отключенной оптимизацией? Dolphin
Я попробовал отладочную сборку вместо выпуска, но проблема не исчезла. Stu

Ваш Ответ

5   ответов
3

вания области отладки и выберите & quot; Добавить выражение ... & quot;

enter image description here

Если вы получаете другое меню, вам нужно отключить текущую подсвеченную переменную, чтобы при щелчке правой кнопкой мыши ничего не выделялось.

7

щелкните правой кнопкой мыши на имени переменной и выберите & quot; Просмотреть переменную в окне & quot; из меню, которое появляется. Это должно быть около дна.

1

ременных» Кнопка в правом нижнем углу консоли вывода. Это маленький прямоугольник, который будет серым слева, белым справа, если он не включен. Я не уверен, что это в XCode 3, но я ожидаю, что большинство людей все равно обновились.

2

gdb компилятор. Для тех из вас, кто ищет возможность установить точку наблюдения с помощьюlldb компилятор у меня плохие новости:

Это не работает джет (XCode 4.3.2 с lldb 3.1), хотяlldb документы говорят, что вы можете.

Проверять, выписыватьсяэтот Эл. адрес.lldb команды по сравнению сgdbс можно найтиВот

wa s e -- <addr> работал на меня, например:wa s e -- 0xbfffeb70
19

я также не получил контрольные точки, созданные из меню «Выполнить», чтобы они работали на меня. Следует помнить одну вещь: когда переменная выходит из области видимости, точка наблюдения может стать недействительной.

Если вы не возражаете немного углубиться, вы можете использовать некоторые низкоуровневыеgdb Команды для установки точки наблюдения для адреса самой памяти. Например, в руководстве, с которым вы связаны, они показывают, как смотреть переменнуюpath который является указателем со значением0xbfffeb70, Чтобы вручную установить точку наблюдения для этого адреса, щелкните в консоли отладчика (где выводятся выходные данные отладки) после символа & quot; (gdb) & quot; подскажите и наберите что-то вроде этого:

watch *((int*)0xbfffeb70)

Загадочный синтаксис необходим, потому что GDB ожидает входные данные в виде выражений C. Для более подробной информации,посетите эту ссылку и перейти к разделу под названием"Using hardware watchpoints", (Я тестирую на компьютере Intel, не знаю, как PowerPC справляется с этим.) Когда вы устанавливаете точки наблюдения таким образом, Xcode сообщит вам раскрывающийся лист при достижении точки наблюдения и сообщит, как изменилось значение, и GDB напечатает ту же информацию в консоли.

Альтернатива lldb будетwatchpoint set expression -- 0xbfffeb70 или жеw s e -- 0xbfffeb70 коротко.
Если вы хотите посмотреть член метода C ++, я нашел этот вариант очень полезным:watch -location mTextFormatted, Выявлена неприятная ошибка, связанная со статическим и динамическим приведением;)

Похожие вопросы