-
Notifications
You must be signed in to change notification settings - Fork 2.2k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add support for FreeBSD #213
Comments
Unfortunately FreeBSD is not a supported platform at the moment. |
Actually, let me rename and reopen for adding FreeBSD support. |
For completeness sake, retrieving the dependencies fails like this:
The issue seems to be:
Cheers, |
@aarzilli : It seems only need to extend content in |
@NanXiao yes. |
Can we also throw in a request for OpenBSD since I'm seeing a similar issue?
|
It's actually worse than just /proc stuff. None of the ptrace definitions are in place for FreeBSD. I'll take a stab at adding them. |
I might help with NetBSD, but currently we are in the process of improving our debugging interfaces and this must wait. |
Status update: my patched delve compiles on FreeBSD. I can start it and run a few commands before it aborts due to an array overflow in Go. I'll keep working as time permits. |
@asomers that's pretty cool. |
@asomers where is your repository? |
Sorry to say that I'm out of time to work on this. Perhaps somebody else can continue where I left off. My main repository is at [email protected]:asomers/delve.git and I'm working in the fbsd branch. I also had to make a few changes to golang. Those are in [email protected]:asomers/sys in the ptrace_fbsd branch. They're also already imported into the vendor area of my delve branch. The biggest challenge to porting Delve to FreeBSD is in the different threading model. On Linux a thread is just a weird process, and ptrace works more or less identically on threads and processes. However, on FreeBSD threads are a first-class concept and ptrace works primarily on processes, using a set of special requests to for thread-related stuff. That difference has exposed some Linuxisms that got accidentally assumed in Delve. I expect that there are more to follow. I apologize in advance for any problems with my code. This is both my first experience with Go and my first experience with ptrace, so it's a little rough. Good luck to all. |
I have got slides (bit dated, but good as a reference) of mine explaining a bit the differences between BSD's ptrace(2) and the Linux's one. |
Implemented via #1480 |
Oh fantastic. Can likely change back to a decent OS for developing on. 😉 |
The text was updated successfully, but these errors were encountered: