Portál AbcLinuxu, 8. května 2025 00:30
self.xlib = ctypes.cdll.LoadLibrary('libX11.so'); self.dpy = self.xlib.XOpenDisplay(); self.root = self.xlib.XDefaultRootWindow(self.dpy)a právě na tom XDefaultRootWindow mi to hlásí:
Neoprávněný přístup do paměti (SIGSEGV)Ve dřívějších verzích pythonu před cca půl roku mi to přitom fungovalo normálně. Nevíce prosím v čem je problém? Předem děkuji za odpověď
Řešení dotazu:
Program received signal SIGSEGV, Segmentation fault. 0x00007ffff4f18a5c in XOpenDisplay () from /usr/lib64/libX11.so (gdb) bt #0 0x00007ffff4f18a5c in XOpenDisplay () from /usr/lib64/libX11.so #1 0x00007ffff6532d28 in ffi_call_unix64 () from /usr/lib64/libffi.so.6 #2 0x00007ffff6532814 in ffi_call () from /usr/lib64/libffi.so.6 #3 0x00007ffff6745eef in _ctypes_callproc () from /usr/lib64/python2.7/lib-dynload/_ctypes.so #4 0x00007ffff673f9d2 in ?? () from /usr/lib64/python2.7/lib-dynload/_ctypes.so #5 0x00007ffff7a44f73 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0 #6 0x00007ffff7ade478 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #7 0x00007ffff7ae283c in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #8 0x00007ffff7a6ad5c in ?? () from /usr/lib64/libpython2.7.so.1.0 #9 0x00007ffff7a44f73 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0 #10 0x00007ffff7a53f5c in ?? () from /usr/lib64/libpython2.7.so.1.0 #11 0x00007ffff7a44f73 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0 #12 0x00007ffff7ad8917 in PyEval_CallObjectWithKeywords () from /usr/lib64/libpython2.7.so.1.0 #13 0x00007ffff7a54c80 in PyInstance_New () from /usr/lib64/libpython2.7.so.1.0 #14 0x00007ffff7a44f73 in PyObject_Call () from /usr/lib64/libpython2.7.so.1.0 #15 0x00007ffff7ade478 in PyEval_EvalFrameEx () from /usr/lib64/libpython2.7.so.1.0 #16 0x00007ffff7ae283c in PyEval_EvalCodeEx () from /usr/lib64/libpython2.7.so.1.0 #17 0x00007ffff7ae2929 in PyEval_EvalCode () from /usr/lib64/libpython2.7.so.1.0 #18 0x00007ffff7afbe4f in ?? () from /usr/lib64/libpython2.7.so.1.0 #19 0x00007ffff7afd092 in PyRun_FileExFlags () from /usr/lib64/libpython2.7.so.1.0 #20 0x00007ffff7afe2a5 in PyRun_SimpleFileExFlags () from /usr/lib64/libpython2.7.so.1.0 #21 0x00007ffff7b10100 in Py_Main () from /usr/lib64/libpython2.7.so.1.0 #22 0x00007ffff744a541 in __libc_start_main () from /lib64/libc.so.6 #23 0x00005555555547ca in _start ()
if not self.dpy: raise Exception('Cannot open display')Tady jsem to neuváděl pro zkrácení zápisu.
import ctypes display_p = ctypes.c_void_p xid = ctypes.c_ulong xlib = ctypes.cdll.LoadLibrary('libX11.so') xlib.XOpenDisplay.restype = display_p xlib.XOpenDisplay.argtypes = ctypes.c_char_p, xlib.XDefaultRootWindow.restype = xid xlib.XDefaultRootWindow.argtypes = display_p, dpy = xlib.XOpenDisplay(None) print(dpy) root = xlib.XDefaultRootWindow(dpy) print(root)
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.