-
Notifications
You must be signed in to change notification settings - Fork 213
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
gdbserver doesn't work on macOS (guest) #298
Comments
Ah-ha! This is what I couldn’t remember what I wanted to try epoll-shim on to fix, thank you! It may need some Python |
Try branch Build: cmake -W Dev -G Ninja ../git/epoll-shim -DCMAKE_INSTALL_PREFIX=/opt/homebrew/Cellar/epoll-shim/git -DCMAKE_BUILD_TYPE=RelWithDebugInfo --fresh -DBUILD_SHARED_LIBS=OFF -DCMAKE_OSX_ARCHITECTURES="arm64e;arm64;x86_64;x86_64h"
ninja install
brew link epoll-shim ctest for interposer will fail when built statically. Build Python with shim using pyenv: env PYTHON_CONFIGURE_OPTS="--enable-shared" CPPFLAGS="-I/opt/homebrew/opt/epoll-shim/include/libepoll-shim" CFLAGS="-I/opt/homebrew/opt/epoll-shim/include/libepoll-shim" CXXFLAGS="-I/opt/homebrew/opt/epoll-shim/include/libepoll-shim" LDFLAGS="-L/opt/homebrew/opt/epoll-shim/lib -lepoll-shim" pyenv install -v 3.11 I don't have a machine with m1n1 set up right now but this stupid test seems to indicate some life: #!/usr/bin/env python3
import os
import selectors
import time
class Foo:
def __init__(self):
self.efd = os.eventfd(0, flags=os.EFD_CLOEXEC | os.EFD_NONBLOCK)
self.selector = selectors.DefaultSelector()
self.selector.register(self.efd, selectors.EVENT_READ)
def wait_shell(self):
try:
os.eventfd_read(self.efd)
print("os.eventfd_read pass")
except BlockingIOError:
print("os.eventfd_read fail")
pass
def notify_in_shell(self):
os.eventfd_write(self.efd, 1)
foo = Foo()
while True:
foo.wait_shell()
time.sleep(0.1)
foo.notify_in_shell() Results: -> % ./epoll-shim-eventfd.py
os.eventfd_read fail
os.eventfd_read pass
os.eventfd_read pass
os.eventfd_read pass
os.eventfd_read pass More testing needs to be done... |
Currently, gdbserver doesn't work on macOS (guest) as it uses eventfd, which isn't available on BSD.
The text was updated successfully, but these errors were encountered: