# A libvirt GDB session with Martin Kletzander $ debuginfo-install libvirt $ gdb libvirtd $(pidof libvirtd) (gdb) b qemuSetupCpusetMems Breakpoint 1 at 0x7fa786f0a49c: file qemu/qemu_cgroup.c, line 618. (gdb) c Continuing. Detaching after fork from child process 18699. Detaching after fork from child process 18700. Detaching after fork from child process 18702. [Switching to Thread 0x7fa792767700 (LWP 935)] Breakpoint 1, qemuSetupCgroupPostInit (vm=vm@entry=0x7fa760000b30, nodemask=0x0) at qemu/qemu_cgroup.c:865 865 return qemuSetupCpusetMems(vm, nodemask); (gdb) print nodemask $1 = (virBitmapPtr) 0x0 (gdb) s qemuSetupCpusetMems (vm=, vm=, nodemask=) at qemu/qemu_cgroup.c:618 618 if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET)) (gdb) qemuSetupCgroupPostInit (vm=vm@entry=0x7fa760000b30, nodemask=0x0) at qemu/qemu_cgroup.c:864 864 { (gdb) 865 return qemuSetupCpusetMems(vm, nodemask); (gdb) s qemuSetupCpusetMems (vm=0x7fa760000b30, vm=0x7fa760000b30, nodemask=0x0) at qemu/qemu_cgroup.c:615 615 char *mem_mask = NULL; 616 int ret = -1; 617 618 if (!virCgroupHasController(priv->cgroup, VIR_CGROUP_CONTROLLER_CPUSET)) 619 return 0; 620 621 if (virDomainNumatuneMaybeFormatNodeset(vm->def->numatune, 622 nodemask, (gdb) 623 &mem_mask, -1) < 0) 624 goto cleanup; 625 626 if (mem_mask && 627 virCgroupSetCpusetMems(priv->cgroup, mem_mask) < 0) 628 goto cleanup; 629 630 ret = 0; 631 cleanup: 632 VIR_FREE(mem_mask); (gdb) b 626 Breakpoint 2 at 0x7fa786f0a517: file qemu/qemu_cgroup.c, line 626. (gdb) c Continuing. Breakpoint 2, qemuSetupCpusetMems (vm=0xffffffff, vm=0xffffffff, nodemask=0x0) at qemu/qemu_cgroup.c:626 626 if (mem_mask && (gdb) print mem_mask $2 = 0x7fa76c007c50 "0" (gdb) list 621 if (virDomainNumatuneMaybeFormatNodeset(vm->def->numatune, 622 nodemask, 623 &mem_mask, -1) < 0) 624 goto cleanup; 625 626 if (mem_mask && 627 virCgroupSetCpusetMems(priv->cgroup, mem_mask) < 0) 628 goto cleanup; 629 630 ret = 0; (gdb) c Continuing.