我通过lldb
调试器启动xcodebuild
,因此我可以更改其执行,如下所示:
lldb
# set debugging target
target create /Applications/Xcode.app/Contents/Developer/usr/bin/xcodebuild
# launch process and stop at entry point
process launch -s -- -sdk iphonesimulator -destination 'name=iPhone SE' test
# set a breakpoint
breakpoint set -F "+[IDELaunchParametersSnapshot launchParametersWithSchemeIdentifier:launcherIdentifier:debuggerIdentifier:launchStyle:runnableLocation:debugProcessAsUID:workingDirectory:commandLineArgs:environmentVariables:architecture:platformIdentifier:buildConfiguration:buildableProduct:deviceAppDataPackage:allowLocationSimulation:locationScenarioReference:showNonLocalizedStrings:language:region:routingCoverageFileReference:enableGPUFrameCaptureMode:enableGPUValidationMode:debugXPCServices:debugAppExtensions:internalIOSLaunchStyle:internalIOSSubstitutionApp:launchAutomaticallySubstyle:]"
break command add
po $rcx = (unsigned long)IDEDefaultLauncherIdentifier
po $r8 = (unsigned long)IDEDefaultDebuggerIdentifier
continue
DONE
# resume execution
continue
我想要实现的是将xcpretty
附加到:
process launch -s -- -sdk iphonesimulator -destination 'name=iPhone SE' test
喜欢
process launch -s -- -sdk iphonesimulator -destination 'name=iPhone SE' test || xcpretty
但我可以看到显然这不是办法。
xcodebuild: error: Unknown build action '||'.
任何想法,如果这是可能的,如果是,如何?
试试这个
进程启动 -s -- -sdk iphone模拟器 -目的地 'name=iPhone SE' 测试 | xcpretty
而不是
进程启动 -s -- -sdk iphone模拟器 -目的地 '名称=iPhone SE' 测试 || xcpretty
或者你可以走这条路
进程启动 -s -- -sdk iphone模拟器 -目标 'name=iPhone SE' 测试>输出.txt
xcpretty <输出.txt>输出.txt>
lldb "进程启动"中的 run-args 不支持管道或重定向运算符。 如果设置了 -c 选项,lldb 将让 shell 对参数进行 shell 扩展。 但这就是与 lldb 支持的 shell 的所有交互。
如果需要调试在执行链中运行的内容,则必须手动启动进程链,并在事后附加到链中的进程。 执行此操作的方法是在启动进程之前在 lldb 中启动附加,并使用-w
选项process attach
告诉 lldb 在进程启动后附加到进程。 然后开始该过程。 除非你的系统负载很重,否则lldb通常会在启动的早期捕获进程,因此对于大多数调试任务,您不会错过您真正关心的代码。