при отладке Swift 5.1 с LLDB в Ubuntu 18.04 - PullRequest
0 голосов
/ 26 сентября 2019

Я пытаюсь отладить swift-код с помощью lldb в linux и не могу это сделать.

Когда я пытаюсь проверить более сложные переменные Struct, я получаю ""

Iпробовал то же самое с более старой версией, и я получаю тот же результат, я думаю, мне не хватает некоторых настроек с этим

У меня есть простой код из быстрой документации

struct Celsius {
    var temperatureInCelsius: Double
    init(fromFahrenheit fahrenheit: Double) {
        temperatureInCelsius = (fahrenheit - 32.0) / 1.8
    }
    init(fromKelvin kelvin: Double) {
        temperatureInCelsius = kelvin - 273.15
    }
}
let bpOfWater = Celsius(fromFahrenheit: 212.0)
let fpOfWater = Celsius(fromKelvin: 273.15)
print("\(bpOfWater)")
print("\(fpOfWater)")

с использованием lldb

$ which lldb
/usr/share/swift/usr/bin/lldb
$ lldb ./swift/apptest/.build/debug/apptest
(lldb) target create "./swift/apptest/.build/debug/apptest"
Current executable set to './swift/apptest/.build/debug/apptest' (x86_64).
(lldb) b -f main.swift -l 13
Breakpoint 1: where = apptest`main + 504 at main.swift:13:7, address = 0x0000000000001078
(lldb) r
Process 8061 launched: '/home/ubuntu/swift/apptest/.build/debug/apptest' (x86_64)
Celsius(temperatureInCelsius: 100.0)
Process 8061 stopped
* thread #1, name = 'apptest', stop reason = breakpoint 1.1
    frame #0: 0x0000555555555078 apptest`main at main.swift:13:7
   10   let bpOfWater = Celsius(fromFahrenheit: 212.0)
   11   let fpOfWater = Celsius(fromKelvin: 273.15)
   12   print("\(bpOfWater)")
-> 13   print("\(fpOfWater)")
Target 0: (apptest) stopped.
(lldb) frame variable bpOfWater
bpOfWater = <could not resolve type>
(lldb) frame variable fpOfWater
fpOfWater = <could not resolve type>
(lldb) 

Итак, как вы видите, я получаю: не удалось разрешить тип

(lldb) frame variable bpOfWater
bpOfWater = <could not resolve type>
(lldb) frame variable fpOfWater
fpOfWater = <could not resolve type>
(lldb) 

, и это не относится к типу String или Int

Итак, кто-нибудь может увидеть, кто яздесь делаешь неправильно?

1 Ответ

0 голосов
/ 26 сентября 2019

Ваше заявление на печать не даст вам ничего читабельного.Попробуйте распечатать bpOfWater.te Температуру InCelsius

...