Используйте команду «выражение» в отладчике. Использование этого относительно просто. Просто введите командное выражение и нажмите enter. Затем вам будет предложено ввести выражение. Вот пример
(lldb) expression
Enter expressions, then terminate with an empty line to evaluate:
2+2
(int) $2 = 4
Я также приложил справочную информацию для команды выражения ниже. Надеюсь это поможет.
Оцените выражение C/ObjC/C++ в текущем контексте программы, используя пользовательские определенные переменные и переменные, находящиеся в настоящее время в области. Эта команда принимает «исходный» вход (нет необходимости цитировать материал).
Синтаксис: выражение -
Опции команды Использование: выражение [-f] [-G] [-a] [-d] [-t] [-u] - выражение [-o ] [-a] [-d] [-t] [-u] - выражения
-G <gdb-format> (--gdb-format <gdb-format>)
Specify a format using a GDB format specifier string.
-a <boolean> (--all-threads <boolean>)
Should we run all threads if the execution doesn't complete on one
thread.
-d <boolean> (--dynamic-value <boolean>)
Upcast the value resulting from the expression to its dynamic type
if available.
-f <format> (--format <format>)
Specify a format to be used for display.
-o (--object-description)
Print the object description of the value resulting from the
expression.
-t <unsigned-integer> (--timeout <unsigned-integer>)
Timeout value for running the expression.
-u <boolean> (--unwind-on-error <boolean>)
Clean up program state if the expression causes a crash, breakpoint
hit or signal.
таймаутов: Если выражение может быть оценено статический (без стереосистемы и обновите код), то он будет. В противном случае по умолчанию выражение будет выполняться в текущем потоке с коротким таймаутом: в настоящее время .25 секунд. Если он не вернется в это время, оценка будет прервана и возобновлена при всех потоках. Вы можете использовать опцию -a, чтобы отключить повторную попытку для всех потоков . Вы можете использовать опцию -t, чтобы установить более короткий тайм-аут.
Определенные пользователем переменные: Вы можете определить свои собственные переменные для удобства или использоваться в последующих выражениях. Вы определяете их так же, как вы определяете переменные в C. Если первый символ , ваша определяемая пользователем переменная равна $, тогда значение переменной будет доступно в будущих выражениях , в противном случае оно будет доступно только в текущем выражении ,
Примеры:
expr my_struct->a = my_array[3]
expr -f bin -- (index * 8) + 5
expr unsigned int $foo = 5
expr char c[] = "foo"; c[0]
ВАЖНО: Поскольку эта команда принимает «сырые» вход, если вы используете какие-либо параметры командной строки вы должны использовать «-» между концом опций команды и начало исходного ввода.
Что такое «по»? Консоль gdb позволит вам оценить большой набор произвольных функций. Что конкретно вы пытаетесь сделать? –
"po" - это объект печати. Это расширение Apple для gcc, что приводит к тому, что сообщение * description * отправляется экземпляру ObjC, чтобы он возвращал его описание. – diciu
А, вот почему я не слышал об этом. Весело. –