【问题标题】:LLDB launch xcodebuild with xcprettyLLDB 使用 xcpretty 启动 xcodebuild
【发布时间】:2017-10-27 05:58:03
【问题描述】:

我正在通过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 '||'.

如果可能的话,有什么想法吗?如果可以,怎么做?

【问题讨论】:

    标签: ios xcode lldb xcodebuild


    【解决方案1】:

    试试这个

    进程启动 -s -- -sdk iphonesimulator -destination 'name=iPhone SE' 测试 |很漂亮

    而不是

    进程启动 -s -- -sdk iphonesimulator -destination 'name=iPhone SE' 测试 ||很漂亮

    或者你可以走这条路

    进程启动 -s -- -sdk iphonesimulator -destination 'name=iPhone SE' test > output.txt

    xcpretty

    【讨论】:

    • 我收到了xcodebuild: error: Unknown build action '>'.xcodebuild: error: Unknown build action '|'.
    • 告诉我一件事,它是工作进程启动 -s -- -sdk iphonesimulator -destination 'name=iPhone SE' test 上面命令的输出是什么?
    • 没有输出。它只是启动进程并在执行后立即停止。毕竟是lldb..
    • 那你为什么要将它重定向到 xcpretty , xcpretty 只有在它从上一个命令中获取内容时才有效,否则它不能做任何事情。它只是一个不错的格式化程序
    • 问题是有没有可能,而不是为什么要做。
    【解决方案2】:

    lldb 的“进程启动”中的 run-args 不支持管道或重定向运算符。如果设置了 -c 选项,lldb 将让 shell 对参数进行 shell 扩展。但这就是 lldb 支持的与 shell 的所有交互。

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

    【讨论】:

      猜你喜欢
      • 2016-10-26
      • 1970-01-01
      • 2018-05-09
      • 1970-01-01
      • 1970-01-01
      • 2018-02-20
      • 2019-03-06
      • 2014-01-29
      • 2017-06-07
      相关资源
      最近更新 更多