如何在模拟器上的应用 运行 上将 lldb 作为独立调试器启动?
How to launch lldb as a Standalone Debugger on an app running on a simulator?
我的问题是 How can I use Swift REPL with iOS SDK 的后续问题:我希望能够放入 iOS 项目中的 REPL 并使用那里定义的 类。
我已经构建了该项目,它正在 运行模拟器上运行:
现在,我想为 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
如何在模拟器上找到 运行ning 的 .app
来启动 lldb
?
更新
正如 Josh Caswell 指出的那样,DerivedData
位于我的主目录中,在那里我可以找到据称在模拟器上 运行ning 的应用程序:
$ 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.
为什么模拟器中的应用程序 运行 未 'picked up' 作为实时进程?
更新 2
仔细看说明书,看来要先附上流程了:
(lldb) process attach --name 'Venmo' --waitfor
现在的问题是这个命令是'hanging'。知道为什么 lldb
无法附加到应用程序的进程吗?
$DerivedData
只是项目的派生数据目录的路径。默认值为 ~/Library/Developer/Xcode/DerivedData 您可以在 Xcode 设置中查看当前值:
您的项目将在那里有自己的目录,这是第一个 $AppName
。 $AppName.app
中的 $AppName
是项目设置中的目标产品名称,它应该只是 "the name of the app" 除非你弄乱了这些设置。
您还可以get the values for your project using xcodebuild
:xcodebuild -project myapp.xcodeproj -showBuildSettings
我的问题是 How can I use Swift REPL with iOS SDK 的后续问题:我希望能够放入 iOS 项目中的 REPL 并使用那里定义的 类。
我已经构建了该项目,它正在 运行模拟器上运行:
现在,我想为 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
如何在模拟器上找到 运行ning 的 .app
来启动 lldb
?
更新
正如 Josh Caswell 指出的那样,DerivedData
位于我的主目录中,在那里我可以找到据称在模拟器上 运行ning 的应用程序:
$ 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.
为什么模拟器中的应用程序 运行 未 'picked up' 作为实时进程?
更新 2
仔细看说明书,看来要先附上流程了:
(lldb) process attach --name 'Venmo' --waitfor
现在的问题是这个命令是'hanging'。知道为什么 lldb
无法附加到应用程序的进程吗?
$DerivedData
只是项目的派生数据目录的路径。默认值为 ~/Library/Developer/Xcode/DerivedData 您可以在 Xcode 设置中查看当前值:
您的项目将在那里有自己的目录,这是第一个 $AppName
。 $AppName.app
中的 $AppName
是项目设置中的目标产品名称,它应该只是 "the name of the app" 除非你弄乱了这些设置。
您还可以get the values for your project using xcodebuild
:xcodebuild -project myapp.xcodeproj -showBuildSettings