Я не думаю, что есть команда, которая будет печатать только идентификатор точки останова. Самое близкое, что я знаю, это thread info
:
br command add -o "thread info"
Это напечатает кучу данных с идентификатором точки останова в самом конце:
thread #1: tid = 0x2220c5, 0x000000010b6cc4dd SomeSDK`-[ABClass method:], queue = 'com.apple.main-thread', stop reason = breakpoint 1.1
Эти данные контролируются настройкой thread-format
. Вы можете изменить значение по умолчанию, чтобы оно было более кратким, например:
settings set thread-format "thread #${thread.index}{, stop reason = ${thread.stop-reason}}"
При этом thread info
показывает:
thread #1, stop reason = breakpoint 1.1
Имейте в виду, что этот параметр используется в других местах, а изменения могут отображаться в других местах.
Наконец, вы можете прибегнуть к Python API. Эта команда напечатает идентификатор точки останова:
br command add -s python -o 'print "{}.{}".format(bp_loc.GetBreakpoint().GetID(), bp_loc.GetID())'
Чтобы объяснить это, команды точки останова Python на самом деле являются функцией, вы можете запустить break list
, чтобы посмотреть, как ее вызовет lldb. Одним из аргументов является bp_loc
, то есть SBBreakpointLocation
. Чтобы напечатать полный идентификатор точки останова, этот код объединяет два значения идентификатора: bp_loc.GetBreakpoint().GetID()
и bp_loc.GetID()
.
Для удобства повторного использования вы можете поместить это в файл где-нибудь, например helpers.py
.
# helpers.py
def brk_id(frame, bp_loc, internal_dict):
bp_id = bp_loc.GetBreakpoint().GetID()
loc_id = bp_loc.GetID()
print "{}.{}".format(bp_id, loc_id)
Тогда в вашем ~/.lldbinit
вы импортируете это так:
command script import path/to/helpers.py
И теперь вы можете легко использовать вспомогательную функцию:
br command add -F helpers.brk_id