From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 92782 invoked by alias); 17 Jul 2019 18:41:30 -0000 Mailing-List: contact gdb-patches-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: gdb-patches-owner@sourceware.org Received: (qmail 92744 invoked by uid 89); 17 Jul 2019 18:41:30 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-0.9 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,SPF_PASS autolearn=ham version=3.3.1 spammy= X-HELO: mail-lf1-f47.google.com Received: from mail-lf1-f47.google.com (HELO mail-lf1-f47.google.com) (209.85.167.47) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Wed, 17 Jul 2019 18:41:29 +0000 Received: by mail-lf1-f47.google.com with SMTP id 62so12380272lfa.8 for ; Wed, 17 Jul 2019 11:41:28 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to; bh=QEwcoVpTJqLmOMxMtf/aeU/opFVRl6xZ0vEZYksMKcc=; b=su+WwaErYeqw4qV+7l9A40FuL6hwfUAkR7dDQPUfvBozEuASxpFQTZmWYkGx5kd3wn fDsKEuGDpNphQ6nu4jHm5r5F4zpgHl0YnPUZ/KYGnzIFoKe5JNUDHnkDdCKl9DHvFeq/ 6rI2Mrf83S9mNfkCj9EWL0BIIAaqds2I/pBw0yoVE2Uj0KToEGbO9SKwTRKKv0q0yS+D /m92ye8wsriJXKOeLO/hXiS5Qqg0tcUdGVrUyN3pKH9qnnKVVz9YJFcl6I+vrRV/I79M H91L048YWRxBAHW2ZmaIPHnKfhzCbDNO0+lHcwwKpYoVDHMaMxOezRJjOKfHdbw8Ei7c gGHg== MIME-Version: 1.0 From: LABARTHE Guillaume Date: Wed, 17 Jul 2019 18:41:00 -0000 Message-ID: Subject: [RFC][PATCH] new-ui command under windows using NamedPipe To: gdb-patches@sourceware.org Content-Type: multipart/mixed; boundary="000000000000412c3a058de4d7b0" X-IsSubscribed: yes X-SW-Source: 2019-07/txt/msg00404.txt.bz2 --000000000000412c3a058de4d7b0 Content-Type: text/plain; charset="UTF-8" Content-length: 856 Hello, I am currently working on a front-end for gdb on windows, and trying to use the new-ui command passing as tty name the name of a named pipe without luck. Then I decided to dig into it so I cloned gdb's repo and started debugging. After some investigation I found out that the problem was that the function new_ui_command in top.c opens the same tty three times (for stdin, sdout and stderr). With windows named pipes the second and third calls to open fail. I then patched the function to open the file only once and pass the same stream for stdin stdout and stderr and that made it work. I don't know the implication of my patch on other operating systems or what would be the way to make it specific to windows. Can you please advise on the best way to make this patch portable. You will find in the attachments my patch so far. Best regards --000000000000412c3a058de4d7b0 Content-Type: application/octet-stream; name="0001-First-fix-for-using-named-pipes-on-windows.patch" Content-Disposition: attachment; filename="0001-First-fix-for-using-named-pipes-on-windows.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_jy7ldwin0 Content-length: 2034 RnJvbSA3NTkyZmZhMWQyNDIyNTNmZjc2NGE0OTE0MDU2NjQ5MDY1YWFhOTU5 IE1vbiBTZXAgMTcgMDA6MDA6MDAgMjAwMQpGcm9tOiBHdWlsbGF1bWUgTEFC QVJUSEUgPGd1aWxsYXVtZS5sYWJhcnRoZUBnbWFpbC5jb20+CkRhdGU6IFdl ZCwgMTcgSnVsIDIwMTkgMjA6MjU6MDQgKzAyMDAKU3ViamVjdDogW1BBVENI XSBGaXJzdCBmaXggZm9yIHVzaW5nIG5hbWVkIHBpcGVzIG9uIHdpbmRvd3MK CgpkaWZmIC0tZ2l0IGEvZ2RiL3RvcC5jIGIvZ2RiL3RvcC5jCmluZGV4IGM1 ZmM5NGY4MjkuLjQwNTUyNmQ5MmIgMTAwNjQ0Ci0tLSBhL2dkYi90b3AuYwor KysgYi9nZGIvdG9wLmMKQEAgLTM0MCw4ICszNDAsNyBAQCBvcGVuX3Rlcm1p bmFsX3N0cmVhbSAoY29uc3QgY2hhciAqbmFtZSkKIHN0YXRpYyB2b2lkCiBu ZXdfdWlfY29tbWFuZCAoY29uc3QgY2hhciAqYXJncywgaW50IGZyb21fdHR5 KQogewotICBnZGJfZmlsZV91cCBzdHJlYW1bM107Ci0gIGludCBpOworICBn ZGJfZmlsZV91cCBzdHJlYW07CiAgIGludCBhcmdjOwogICBjb25zdCBjaGFy ICppbnRlcnByZXRlcl9uYW1lOwogICBjb25zdCBjaGFyICp0dHlfbmFtZTsK QEAgLTM2MCwxMyArMzU5LDExIEBAIG5ld191aV9jb21tYW5kIChjb25zdCBj aGFyICphcmdzLCBpbnQgZnJvbV90dHkpCiAgIHsKICAgICBzY29wZWRfcmVz dG9yZSBzYXZlX3VpID0gbWFrZV9zY29wZWRfcmVzdG9yZSAoJmN1cnJlbnRf dWkpOwogCi0gICAgLyogT3BlbiBzcGVjaWZpZWQgdGVybWluYWwsIG9uY2Ug Zm9yIGVhY2ggb2YKLSAgICAgICBzdGRpbi9zdGRvdXQvc3RkZXJyLiAgKi8K LSAgICBmb3IgKGkgPSAwOyBpIDwgMzsgaSsrKQotICAgICAgc3RyZWFtW2ld ID0gb3Blbl90ZXJtaW5hbF9zdHJlYW0gKHR0eV9uYW1lKTsKKyAgICAvKiBP cGVuIHNwZWNpZmllZCB0ZXJtaW5hbCAqLworICAgIHN0cmVhbSA9IG9wZW5f dGVybWluYWxfc3RyZWFtICh0dHlfbmFtZSk7CiAKICAgICBzdGQ6OnVuaXF1 ZV9wdHI8dWk+IHVpCi0gICAgICAobmV3IHN0cnVjdCB1aSAoc3RyZWFtWzBd LmdldCAoKSwgc3RyZWFtWzFdLmdldCAoKSwgc3RyZWFtWzJdLmdldCAoKSkp OworICAgICAgKG5ldyBzdHJ1Y3QgdWkgKHN0cmVhbS5nZXQgKCksIHN0cmVh bS5nZXQgKCksIHN0cmVhbS5nZXQgKCkpKTsKIAogICAgIHVpLT5hc3luYyA9 IDE7CiAKQEAgLTM3NywxMCArMzc0LDcgQEAgbmV3X3VpX2NvbW1hbmQgKGNv bnN0IGNoYXIgKmFyZ3MsIGludCBmcm9tX3R0eSkKICAgICBpbnRlcnBfcHJl X2NvbW1hbmRfbG9vcCAodG9wX2xldmVsX2ludGVycHJldGVyICgpKTsKIAog ICAgIC8qIE1ha2Ugc3VyZSB0aGUgZmlsZXMgYXJlIG5vdCBjbG9zZWQuICAq LwotICAgIHN0cmVhbVswXS5yZWxlYXNlICgpOwotICAgIHN0cmVhbVsxXS5y ZWxlYXNlICgpOwotICAgIHN0cmVhbVsyXS5yZWxlYXNlICgpOwotCisgICAg c3RyZWFtLnJlbGVhc2UgKCk7CiAgICAgdWkucmVsZWFzZSAoKTsKICAgfQog Ci0tIAoyLjExLjAKCg== --000000000000412c3a058de4d7b0--