--- src/vdagent/get-xrandr-output.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) diff --git a/src/vdagent/get-xrandr-output.c b/src/vdagent/get-xrandr-output.c index 2127e66..14e781d 100644 --- a/src/vdagent/get-xrandr-output.c +++ b/src/vdagent/get-xrandr-output.c @@ -64,7 +64,7 @@ static const char *connections[] = {"", "*CONNECTED*", "disconnected", "unknown int main(int argc, char* argv[]) { if (argc < 3) { - ERROR("Usage: %s PCIADDR MONITORID", argv[0]); + ERROR("Usage: %s PCIADDR MONITORID\n", argv[0]); } // PCI address should be in extended BDF notation @@ -82,6 +82,7 @@ int main(int argc, char* argv[]) snprintf(dev_path, sizeof(dev_path), DRM_DEV_NAME, DRM_DIR_NAME, i); if (stat(dev_path, &buf) != 0) { // no card exists, exit loop + ERROR("no card exists\n"); break; } @@ -89,15 +90,17 @@ int main(int argc, char* argv[]) // pci address for the device char sys_path[64]; snprintf(sys_path, sizeof(sys_path), "/sys/class/drm/card%d", i); + printf("sys path: %s\n", sys_path); // the file /sys/class/drm/card0/device is a symlink to a file that // specifies the device's address. It usually points to something // like ../../../0000:00:02.0 char sys_path_device[100], device_link[100]; snprintf(sys_path_device, sizeof(sys_path_device), "%s/device", sys_path); + printf("sys path device: %s\n", sys_path_device); ssize_t res = readlink(sys_path_device, device_link, sizeof(device_link) - 1); if (res == -1) { - ERROR(strerror(errno)); + ERROR("readlink error: %s\n", strerror(errno)); } // readlink does not guarantee that the string is null-terminated device_link[res] = '\0'; @@ -114,18 +117,18 @@ int main(int argc, char* argv[]) int fd; fd = open(dev_path, O_RDWR); if (fd < 0) { - ERROR(strerror(errno)); + ERROR("open error: %s\n", strerror(errno)); } drmModeResPtr res = drmModeGetResources(fd); if (!res) { - ERROR("Unable to get resources for card"); + ERROR("Unable to get resources for card\n"); } // find the drm output that is equal to monitor_id /* FIXME: verify that monitor id is 0-based */ if (res->count_connectors < (monitor_id + 1)) { - ERROR("Unable to find output"); + ERROR("Unable to find output\n"); } drmModeConnectorPtr conn = drmModeGetConnector(fd, res->connectors[monitor_id]); @@ -143,17 +146,17 @@ int main(int argc, char* argv[]) // now look up all xrandr outputs Display *xdisplay = XOpenDisplay(NULL); if (!xdisplay) { - ERROR("Failed to open X dislay"); + ERROR("Failed to open X dislay\n"); } int rr_event_base, rr_error_base; if (!XRRQueryExtension(xdisplay, &rr_event_base, &rr_error_base)) { - ERROR("Failed to initialize XRandr extension"); + ERROR("Failed to initialize XRandr extension\n"); } XRRScreenResources *xres = XRRGetScreenResourcesCurrent(xdisplay, DefaultRootWindow(xdisplay)); if (!xres) { - ERROR("Unable to get screen resources"); + ERROR("Unable to get screen resources\n"); } // Loop through xrandr outputs and check whether the xrandr @@ -178,7 +181,7 @@ int main(int argc, char* argv[]) char *id_pos = strrchr(oinfo->name, '-') + 1; int newid = atoi(id_pos) + 1; if (snprintf(xname, sizeof(xname), "%s%i", oinfo->name, newid) < 0) { - ERROR("Unable to increment name"); + ERROR("Unable to increment name\n"); } } else { strncpy(xname, oinfo->name, sizeof(xname) - 1); @@ -200,6 +203,8 @@ int main(int argc, char* argv[]) // we found the right card, abort the loop found = true; break; + } else { + printf("card addr '%s' does not match requested addr '%s'\n", card_addr, user_addr); } } if (!found) { -- 2.19.1 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx https://lists.freedesktop.org/mailman/listinfo/spice-devel