如何在模拟器上运行的应用程序上启动lldb作为独立调试器?

问题描述 投票:1回答:1

我的问题是How can I use Swift REPL with iOS SDK的后续行动:我希望能够在iOS项目中放入REPL并使用那里定义的类。

我已经构建了项目并且它在模拟器上运行:

enter image description here

现在,我想根据上面的答案中引用的这些命令为iOS项目启动一个独立的LLDB调试器:

$ xcrun lldb -- $DerivedData/$AppName/Build/Products/Debug-iphonesimulator/$AppName.app
(lldb) process attach --name '$AppName' --waitfor

但是,我不清楚用什么替代$DerivedData$AppName。 LLDB快速入门指南https://developer.apple.com/library/archive/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-terminal-workflow-tutorial.html对我也没什么帮助,因为这个例子只是提供了一条路径而没有解释你如何获得这条路径。

我也尝试过https://apple.stackexchange.com/questions/171752/ios-simulator-installed-app-location-in-xcode-6-1的答案,我试过在下面的位置搜索,但没有找到它:

$ find . -name '*app'
./Developer/Library/Xcode/Agents/XCTRunner.app
$ pwd
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform

如何找到在模拟器上运行的.app以启动lldb

更新

正如Josh Caswell所指出的,DerivedData位于我的主目录中,在那里我可以找到应该在模拟器上运行的应用程序:

$ cd ~/Library/Developer/Xcode/DerivedData
$ find . -name '*Venmo.app'
./VenmoWorkspace-apbzqcexodswkdfenhxlkpnlmvsx/Build/Products/Debug-iphonesimulator/Venmo.app

唯一的问题是,如果我尝试运行repl命令,我得到error: Can't run the REPL without a live process.

$ lldb ./VenmoWorkspace-apbzqcexodswkdfenhxlkpnlmvsx/Build/Products/Debug-iphonesimulator/Venmo.app
(lldb) target create "./VenmoWorkspace-apbzqcexodswkdfenhxlkpnlmvsx/Build/Products/Debug-iphonesimulator/Venmo.app"
Current executable set to './VenmoWorkspace-apbzqcexodswkdfenhxlkpnlmvsx/Build/Products/Debug-iphonesimulator/Venmo.app' (x86_64).
(lldb) repl
error: Can't run the REPL without a live process.

为什么在模拟器中运行的应用程序不会被“拾取”为实时进程?

更新2

更仔细地阅读说明书,似乎我必须首先附加到流程:

(lldb) process attach --name 'Venmo' --waitfor

现在的问题是这个命令是“挂”。知道为什么lldb无法附加到应用程序的过程吗?

ios xcode ios-simulator lldb simctl
1个回答
1
投票

$DerivedData只是项目的Derived Data目录的路径。默认为〜/ Library / Developer / Xcode / DerivedData您可以在Xcode设置中看到当前值:

你的项目将有自己的目录,这是第一个$AppName$AppName中的$AppName.app是项目设置中目标的产品名称,除非您一直在弄乱这些设置,否则它应该只是“应用程序的名称”。

你也可以get the values for your project using xcodebuildxcodebuild -project myapp.xcodeproj -showBuildSettings

© www.soinside.com 2019 - 2024. All rights reserved.