
On Fri, May 01, Ian Campbell wrote:
Olaf, please can you use gdb to capture the stack trace so we can fix this (and the other issue) properly in libxl instead of just hacking around it in libvirt (which might also be appropriate for compat with old libxl but shouldn't be done without also fixing libxl IMHO).
The code flow was essentially like this: libxl_device_vfb_init(libxl); switch(libvirt->type) { case SDL: libxl_defbool_set(libxl->sdl.enable, 1); break; case VNC: libxl_defbool_set(libxl->vnc.enable, 1); break; } if (libvirt->os.type == HVM) { if (libxl_defbool_val(libxl->vnc.enable)) { /* do VNC things */ } else if (libxl_defbool_val(libxl->sdl.enable)) { /* do SDL things */ if (libxl_defbool_val(libxl->opengl.enable)) /* do openGL things */ } } The first crash was because I had SDL enabled, and the SDL case did not initialize the defbool for VNC. Once it did the next crash was the openGL part which was not initialized either. I see nothing wrong with libxl in such usage. Olaf