LLDB使用xcpretty启动xcodebuild

时间:2017-05-26 11:01:54

标签: ios xcode lldb xcodebuild

我正在通过xcodebuild调试器启动lldb,因此我可以更改其执行情况,如:

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 '||'.

任何想法,如果这是甚至可能,如果是这样的话?

2 个答案:

答案 0 :(得分:0)

试试这个

流程启动-s - -sdk iphonesimulator -destination' name = iPhone SE'测试| xcpretty

而不是

流程启动-s - -sdk iphonesimulator -destination' name = iPhone SE'测试|| xcpretty

或者你可以这样走

流程启动-s - -sdk iphonesimulator -destination' name = iPhone SE'测试> output.txt的

xcpretty< output.txt的

答案 1 :(得分:0)

lldb""进程启动中的run-args"不支持管道或重定向操作符。如果设置了-c选项,lldb将使shell在参数上进行shell扩展。但那是与lldb支持的shell的所有交互。

如果您需要调试在执行链中运行的某些内容,则必须手动启动流程链,并在事后附加到链中的流程。执行此操作的方法是在启动进程之前在lldb中启动attach,并使用-w选项process attach告诉lldb在启动后附加到进程。然后开始这个过程。除非您的系统负载很重,否则lldb通常会在启动初期抓住该进程,因此对于大多数调试任务,您都不会错过您真正关心的代码。