调试 Vapor 4 的最佳方法是什么?

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

环境:蒸气 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 调试完成实时单步执行代码、检查变量等的典型方法是什么?

macos vapor
1个回答
0
投票

您可以使用完全相同的过程 - 在 Xcode 中运行应用程序并在您想要的行上放置断点等。您还可以使用 Swift 扩展在 VSCode 中运行以获得相同的体验。

(如果您想从命令行调试,您应该通过 LLDB 启动应用程序)

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