2013-12-15 3 views
1

Символьные переборки отличные, но это сложность, которую нужно вручную добавить в xcode. Ну, после того, как вы добавите, вы можете просто включить/отключить их, но было бы неплохо, чтобы иметь возможность сделать это в коде ... что-то вроде этого:Xcode 5: установить символические точки останова программно

#if DEBUG 
    SetBreakPointForFunction([Myclass myfunction], BreakPointActionPlaySound); 
#endif 

Возможно ли это?

https://developer.apple.com/library/ios/recipes/xcode_help-breakpoint_navigator/articles/setting_breakpoint_actions_and_options.html

ответ

0

Не в коде точно, но вы можете быть в состоянии создать точки останова на этапе отладки сборки со сценарием оболочки (Или есть оболочка огня Python, Ruby, что угодно ... чтобы сделать работу.)

Если заглянуть в папку .xcodeproj, вы увидите, что она имеет пути, как: [Projectname] .xcodeproj/xcuserdata/[имя пользователя] .xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist [Projectname] .xcodeproj/xcshareddata/xcdebugger/Breakpoints_v2.xcbkptlist

(отказ от ответственности, этот пример ссылается Xcode 5.1.1)

Содержимое файлов довольно просты:

<?xml version="1.0" encoding="UTF-8"?> 
<Bucket 
    type = "4" 
    version = "2.0"> 
    <Breakpoints> 
     <BreakpointProxy 
     BreakpointExtensionID = "Xcode.Breakpoint.SymbolicBreakpoint"> 
     <BreakpointContent 
      shouldBeEnabled = "No" 
      ignoreCount = "0" 
      continueAfterRunningActions = "No" 
      symbolName = "-[ActivitySpanner thresholdTimePassed]" 
      moduleName = ""> 
     </BreakpointContent> 
     </BreakpointProxy> 
    </Breakpoints> 
</Bucket> 

Так, наполняя экземплярами BreakpointProxy в один из этих файлов, вы можете применить библиотеку из избранных контрольных точек. Дубликаты могут быть больными, либо нажимать, либо всплывать файл, либо сначала проверять экземпляр.

В худшем случае, если xcode не может быть принудительно перечитан файлы xcbkptlist, когда они будут изменены вашим сценарием, тогда у вас может быть скрипт, который управляет файлами точки останова, а затем открывает проект. (Возможно, излишний, мы вошли на территорию инструментов непрерывной интеграции, таких как Дженкинс сейчас :)

Смежные вопросы