Подтвердить что ты не робот

У LLDB есть переменные удобства ($ var)?

Имеет ли LLDB удобные переменные? Если да, то как их использовать? Если нет, есть ли что-то подобное?

Ссылка: http://software.intel.com/sites/products/documentation/hpc/atom/application/debugger/commands143.html

4b9b3361

Ответ 1

Я, наконец, понял это сам. Запустите help expr в LLDB, и вы увидите:

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

Итак, expr int $foo = 5 - это то, что я хочу.

Ответ 2

Я боролся с этим сегодня. Вот как это выглядит, имея дело с переменными Objective-C в LLDB:

expr UIApplication *$app = (UIApplication *)[UIApplication sharedApplication]
expr UIWindow *$keyWindow = (UIWindow *)[$app keyWindow]

и т.д.. Я нашел, что LLDB работает лучше всего, если вы не вложили никаких вызовов, и вы явно указываете тип возврата для каждого вызова.

Тем не менее, я получаю ошибку сегментации, когда я пытаюсь сделать initWithFrame: работу с UIView позже.:/

Ответ 3

Просто используйте форму:

(lldb) expr var

Из tutorial:

(lldb) expr self
$0 = (SKTGraphicView *) 0x0000000100135430
(lldb) expr self = 0x00
$1 = (SKTGraphicView *) 0x0000000000000000

Вы также можете вызвать функции:

(lldb) expr (int) printf ("I have a pointer 0x%llx.\n", self)
$2 = (int) 22
I have a pointer 0x0.
(lldb) expr self = $0
$4 = (SKTGraphicView *) 0x0000000100135430