环境:蒸气 4.77+ MacOS:13.4.1
目标: 实时单步执行 Vapor 代码并检查元素,就像我通常通过 Xcode 使用常规 iOS/MacOS 应用程序一样。
这是我想看的一个片段示例:
struct FormData: Content {
let name: String
let image: File
}
struct MultiPartController: RouteCollection {
func boot(routes: RoutesBuilder) throws {
let multiPartRoute = routes.grouped("MultiPart")
multiPartRoute.on(.POST, body: .collect(maxSize: "10mb"), use: uploadMultiParts)
}
func uploadMultiParts(req: Request) throws -> EventLoopFuture<String> {
do {
let form = try req.content.decode(FormData.self)
let name = form.name
let imageFile = form.image
// Get image data and filename
let imageData = imageFile.data
let filename = imageFile.filename
// ...
这是 Vapor 调试器运行,尝试与其交互:
/Users/username/workarea/vapor/imageserverclient/imageuploadvapor> swift run --debugger
Building for debugging...
Build complete! (0.37s)
(lldb) target create ".build/arm64-apple-macosx/debug/App"
Current executable set to '/Users/username/workarea/vapor/imageserverclient/imageuploadvapor/.build/arm64-apple-macosx/debug/App' (arm64).
(lldb) step
error: Command requires a current process.
我是否必须启动并行进程并针对每个进程 ID 进行调试?
通过 Xcode 调试完成实时单步执行代码、检查变量等的典型方法是什么?
您可以使用完全相同的过程 - 在 Xcode 中运行应用程序并在您想要的行上放置断点等。您还可以使用 Swift 扩展在 VSCode 中运行以获得相同的体验。
(如果您想从命令行调试,您应该通过 LLDB 启动应用程序)