2016-08-11 5 views
1

При отладке кода Objective-C lldb пропускает вызовы objc_msgSend и останавливается при вызове реального метода.Шаг в - [NSInvocation invoke] во время отладки

Я хотел бы иметь подобное поведение при отладке кода, который использует NSInvocation. Достигнув точки, где вызывается -[NSInvocation invoke], я хотел бы сделать команду «вступить» и пропустить objc_msgSend, -[NSInvocation invoke], __invoking___ и objc_msgSend и приземлиться на фактическом методе.

Есть ли какие-то настройки LLDB, которые можно использовать для достижения этого?

ответ

0

lldb не имеет встроенной поддержки для NSInvocation.

Если вы так склонны, сообщите об этом об ошибке. Так как это ObjC конкретный, возможно, лучше записать его с http://bugreporter.apple.com.

+1

Зарегистрировано как https://openradar.appspot.com/radar?id=6097195182850048. Между тем, я собираюсь выяснить, может ли это быть достигнуто путем написания пользовательского плана потоков для LLDB с использованием привязок Python. См. Http://lldb.llvm.org/python-reference.html «ИСПОЛЬЗОВАНИЕ API PYTHON ДЛЯ СОЗДАНИЯ ЛОГИСТИКИ CUSTOM STEPPING». Любая помощь приветствуется. – kjam

+0

Это должно быть возможно. Если у вас есть какие-либо вопросы, список lldb-dev, вероятно, лучший ресурс: [email protected] Одним из ограничений реализованных планов шага внедрения SB является то, что вы не можете в настоящее время вызывать функции в плане потоков. Однако я не могу сказать, если вам нужно это делать или нет. –