svaante / dape

Debug Adapter Protocol for Emacs
GNU General Public License v3.0
455 stars 25 forks source link

Support for iOS simulator and Swift? #55

Closed konrad1977 closed 7 months ago

konrad1977 commented 7 months ago

Hi thanks for what's looking like a great package for us that uses Eglot instead of LSP-mode.

Hi, I wonder if there is support for iOS and iOS simulator? I don't know which config to launch?

I thought there would be an option to launch lldb?

https://developer.apple.com/library/archive/documentation/IDEs/Conceptual/gdb_to_lldb_transition_guide/document/lldb-terminal-workflow-tutorial.html

konrad1977 commented 7 months ago

Here is some info how to do this from the terminal:

lldb platform select ios-simulator

lldb connect <Simulartor GUID>

lldb attach -n 'appname' --waitfor

How can I translate this so it works from emacs? I can dynamically get the simulatorID and the app name.

svaante commented 7 months ago

Great suggestion will take a look at it when I have time. If anybody is interested in taking this on I would be happy as well 👍

konrad1977 commented 7 months ago

Just let me know if I can assist you with any info.

konrad1977 commented 7 months ago

Here Is a small update. I wrote my own comint and lldb-breakpoint management tools for Emacs while waiting for you to look into how to get Dape working.

After some more deeper investigation, you can actually get it working with less commands: First you need to do is to launch the iOS simulator: xcrun simctl launch --wait-for-debugger --terminate-running-process <SimulatorID> <App bundle idenentifier>

--wait-for-debugger (or -w) will hang the process and wait for LLDB.

Then you can just start another process of LLDB: lldb -n 'AppName' or if you using a script attach -n 'AppName'\n process continue

svaante commented 7 months ago

Hello I got it working with codelldb as the adapter see https://github.com/svaante/dape/wiki#swift-ios

Please get back to me if you get it working and or have any suggestions on improvements, I don't know if I should add it as an included config.

konrad1977 commented 7 months ago

Works like a charm. Thanks.