Greifen Sie in Cocoa-Programmen auf eine schnelle REPL zu

Ich kann LLDB an ein in Swift geschriebenes Programm anhängen und auf die REPL zugreifen, entweder über Xcode oder durch Ausführen von:

lldb -n ProcessName
(lldb) repl
  1>

Wenn ich jedoch LLDB an einen Prozess anhänge, der nicht über die Swift-Laufzeit verfügt, ist die REPL nicht sehr nützlich. Zum Beispiel:

lldb -n Finder
Process 218 stopped
Executable module set to "/System/Library/CoreServices/Finder.app/Contents/MacOS/Finder".
Architecture set to: x86_64-apple-macosx.
(lldb) repl
  1> import Cocoa
error: Couldn't lookup symbols:
  __swift_FORCE_LOAD_$_swiftAppKit
  __swift_FORCE_LOAD_$_swiftCoreGraphics
  __swift_FORCE_LOAD_$_swiftObjectiveC
  __swift_FORCE_LOAD_$_swiftDispatch
  __swift_FORCE_LOAD_$_swiftDarwin
  __swift_FORCE_LOAD_$_swiftFoundation

Haben Sie eine Idee, wie Sie die Swift-Laufzeit in einen Prozess laden können, der noch nicht damit verknüpft ist? Dies könnte eine sehr nützliche Alternative zu z.B. Injizieren von F-Script.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage