2009-06-24 2 views
18

Я пытаюсь посмотреть переменную с Xcode. Я следую инструкциям в here, останавливаясь в точке останова, выбрав Run> Variables View> ...., но за исключением «Enable Data Formatters» остальные параметры выделены серым цветом. Есть идеи?Просмотр переменных в Xcode

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

+1

Как только вы нажмете точку останова, вы сможете навести указатель мыши на точку останова и отобразить информацию о переменных. – zpesk

+0

Вы уверены, что используете отладочную сборку с отключенной оптимизацией? – Dolphin

+0

Я попробовал сборку отладки вместо выпуска, но проблема не устранена. – Stu

ответ

19

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

Если вы не возражаете, чтобы немного углубиться в глубину, вы можете использовать некоторые низкоуровневые команды gdb для установки точки наблюдения за адресом самой памяти. Например, в руководстве, к которому вы привязались, они показывают, как смотреть переменную path, которая является указателем со значением 0xbfffeb70. Чтобы вручную установить точку наблюдения для этого адреса, нажмите в консоли отладчика (где печатается отладочный) после «(БГД)» быстрое и введите что-то вроде этого:

watch *((int*)0xbfffeb70) 

Загадочный синтаксис необходим, потому что GDB ожидает ввода в виде выражений C. Для получения более подробной информации, visit this link и перейти к разделу под названием «Использование аппаратных точек наблюдения». (Я тестирую на компьютере Intel, не знаю, как PowerPC справляется с этим.) Когда вы устанавливаете точки наблюдения таким образом, Xcode будет предупреждать вас о выпадающем листе, когда точка наблюдения будет достигнута, и расскажет вам, как было изменено значение, и gdb напечатает ту же информацию в консоли.

+2

Если вы хотите посмотреть член метода C++, я нашел этот вариант чрезвычайно полезным: 'watch -location mTextFormatted'. Выявлена ​​неприятная ошибка, связанная со статическим vs динамическим литом;) –

+2

Альтернатива lldb будет «короткое выражение для набора точек наблюдения - 0xbfffeb70' или' w s e - 0xbfffeb70'. –

7

Я просто столкнулся с этой проблемой. Вот решение: щелкните правой кнопкой мыши имя переменной и выберите «Просмотреть переменную в окне» в появившемся меню. Он должен быть у основания.

2

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

Не работает jet (XCode 4.3.2 с lldb 3.1), хотя вы можете сказать, что вы можете.

Отъезд this Эл. Почта. В lldb команды по сравнению с gdb с можно найти here

+0

'wa s e - ' работал для меня, например: 'wa s e - 0xbfffeb70' –

1

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

2

Добавить точку останова. Щелкните правой кнопкой мыши в списке наблюдения области отладки и выберите «Добавить выражение ...»

enter image description here

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