From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27547 invoked by alias); 28 Nov 2019 23:53:59 -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 27497 invoked by uid 89); 28 Nov 2019 23:53:58 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-16.9 required=5.0 tests=AWL,BAYES_00,BODY_8BITS,GARBLED_BODY,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_LOW,SPF_HELO_PASS,SPF_PASS autolearn=ham version=3.3.1 spammy=indent, grok X-HELO: mail2.protonmail.ch Received: from mail2.protonmail.ch (HELO mail2.protonmail.ch) (185.70.40.22) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 28 Nov 2019 23:53:55 +0000 Date: Thu, 28 Nov 2019 23:53:00 -0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gdcproject.org; s=protonmail; t=1574985232; bh=cOskDfmtmaNRdCnORaqd+ZHzh4F6QwswHqS2tX7Flc8=; h=Date:To:From:Cc:Reply-To:Subject:Feedback-ID:From; b=sQi1tqMEFhdCTpSC/ED8VUJAWzmturZRquzXRRSx2k34vCrJ/xXmmknJkJmy5MSR8 nGuLX/on23U8pE/Cc1uIgZ7brX25+sJOp4AZYjUhMANtnLEZ0ATxTk8PlICWH7JKfg iGkVIaLwwxIXTt2cD6wPwmM4sc/8rjOmaC2mhtmc= To: Pedro Alves From: Iain Buclaw Cc: "gdb-patches@sourceware.org" Reply-To: Iain Buclaw Subject: [PATCH v2 1/3] gdb: Rename gdb_flush to ui_file_flush. Message-ID: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_9aeaa12f9293435892e98e4456c478b9" X-IsSubscribed: yes X-SW-Source: 2019-11/txt/msg01120.txt.bz2 This is a multi-part message in MIME format. --b1_9aeaa12f9293435892e98e4456c478b9 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 2822 =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 Original Me= ssage =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 On Wednesday, 27 November 2019 00:00, Iain Buclaw = wrote: > =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 Original = Message =E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90=E2=80=90 > On Tuesday, 26 November 2019 21:24, Pedro Alves palves@redhat.com wrote: > > > On 11/26/19 12:49 PM, Iain Buclaw wrote: > > > > > The significance of this is that printf_unfiltered writes messages to= wrap_buffer, whereas puts_unfiltered pushes them immediately to stdout, re= sulting in "post-" messages being printed out of order. > > > > It sounds quite surprising that two _unfiltered functions could behave = differently > > like that. That sounds like a bug that should be fixed, instead of work= ed around > > by having to recall to use printf vs puts. > > Thanks, > > Pedro Alves > > I think the best way to avoid the discrepancy is to treat both fputs_filt= ered and fputs_unfiltered equally by forwarding both calls to fputs_maybe_f= iltered. > > To avoid recursion, flush_wrap_buffer and fputs_maybe_filtered have had c= alls to fputs_unfiltered replaced with stream->puts(). > > While attempting to grok my head around fputs_maybe_filtered, I also noti= ced that buffer_clearer is being removed by the compiler as dead code. > Except that doesn't work as some parts of gdb require that direct writing/f= lushing stdout is kept in place, so what I ultimately ended up doing is def= ining two new functions for this, then repurposing fputs_unfiltered and gdb= _flush to interact with fputs_maybe_unfiltered. I've split the patch into two logical parts, each dealing with one function= at a time. Running the testsuitelocally, I can see no new regressions as = a result of applying this. This first patch renames gdb_flush to ui_file_flush. Redefining gdb_flush = in utils.c, with a new behaviour to flush the wrap_buffer if necessary befo= re flushing the stream. -- Iain --- gdb/ChangeLog: 2019-11-28 Iain Buclaw * gdb/event-loop.c (gdb_wait_for_event): Update. * gdb/printcmd.c (printf_command): Update. * gdb/remote-fileio.c (remote_fileio_func_write): Update. * gdb/remote-sim.c (gdb_os_flush_stdout): Update. (gdb_os_flush_stderr): Update. * gdb/remote.c (remote_console_output): Update. * gdb/ui-file.c (gdb_flush): Rename to... (ui_file_flush): ...this. (stderr_file::write): Update. (stderr_file::puts): Update. * gdb/ui-file.h (gdb_flush): Rename to... (ui_file_flush): ...this. * gdb/utils.c (gdb_flush): Add function. * gdb/utils.h (gdb_flush): Add declaration. --- --b1_9aeaa12f9293435892e98e4456c478b9 Content-Type: text/x-patch; name="uifileflush.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename=uifileflush.patch Content-length: 5946 ZGlmZiAtLWdpdCBhL2dkYi9ldmVudC1sb29wLmMgYi9nZGIvZXZlbnQtbG9v cC5jCmluZGV4IGFmZmEwMGI0YWEuLjBkMTJhYzlkNDEgMTAwNjQ0Ci0tLSBh L2dkYi9ldmVudC1sb29wLmMKKysrIGIvZ2RiL2V2ZW50LWxvb3AuYwpAQCAt NzQ3LDggKzc0Nyw4IEBAIGdkYl93YWl0X2Zvcl9ldmVudCAoaW50IGJsb2Nr KQogICBpbnQgbnVtX2ZvdW5kID0gMDsKIAogICAvKiBNYWtlIHN1cmUgYWxs IG91dHB1dCBpcyBkb25lIGJlZm9yZSBnZXR0aW5nIGFub3RoZXIgZXZlbnQu ICAqLwotICBnZGJfZmx1c2ggKGdkYl9zdGRvdXQpOwotICBnZGJfZmx1c2gg KGdkYl9zdGRlcnIpOworICB1aV9maWxlX2ZsdXNoIChnZGJfc3Rkb3V0KTsK KyAgdWlfZmlsZV9mbHVzaCAoZ2RiX3N0ZGVycik7CiAKICAgaWYgKGdkYl9u b3RpZmllci5udW1fZmRzID09IDApCiAgICAgcmV0dXJuIC0xOwpkaWZmIC0t Z2l0IGEvZ2RiL3ByaW50Y21kLmMgYi9nZGIvcHJpbnRjbWQuYwppbmRleCBm ZTBlZmQzNzFhLi5lMDI5NTk0MGQ4IDEwMDY0NAotLS0gYS9nZGIvcHJpbnRj bWQuYworKysgYi9nZGIvcHJpbnRjbWQuYwpAQCAtMjcxOCw3ICsyNzE4LDcg QEAgcHJpbnRmX2NvbW1hbmQgKGNvbnN0IGNoYXIgKmFyZywgaW50IGZyb21f dHR5KQogICB1aV9wcmludGYgKGFyZywgZ2RiX3N0ZG91dCk7CiAgIHJlc2V0 X3Rlcm1pbmFsX3N0eWxlIChnZGJfc3Rkb3V0KTsKICAgd3JhcF9oZXJlICgi Iik7Ci0gIGdkYl9mbHVzaCAoZ2RiX3N0ZG91dCk7CisgIHVpX2ZpbGVfZmx1 c2ggKGdkYl9zdGRvdXQpOwogfQogCiAvKiBJbXBsZW1lbnQgdGhlICJldmFs IiBjb21tYW5kLiAgKi8KZGlmZiAtLWdpdCBhL2dkYi9yZW1vdGUtZmlsZWlv LmMgYi9nZGIvcmVtb3RlLWZpbGVpby5jCmluZGV4IGJjN2M3MWZmZGQuLmUy ZWUzMTFiZjMgMTAwNjQ0Ci0tLSBhL2dkYi9yZW1vdGUtZmlsZWlvLmMKKysr IGIvZ2RiL3JlbW90ZS1maWxlaW8uYwpAQCAtNjQxLDcgKzY0MSw3IEBAIHJl bW90ZV9maWxlaW9fZnVuY193cml0ZSAocmVtb3RlX3RhcmdldCAqcmVtb3Rl LCBjaGFyICpidWYpCiAgICAgICBjYXNlIEZJT19GRF9DT05TT0xFX09VVDoK IAl1aV9maWxlX3dyaXRlICh0YXJnZXRfZmQgPT0gMSA/IGdkYl9zdGR0YXJn IDogZ2RiX3N0ZHRhcmdlcnIsCiAJCSAgICAgICAoY2hhciAqKSBidWZmZXIs IGxlbmd0aCk7Ci0JZ2RiX2ZsdXNoICh0YXJnZXRfZmQgPT0gMSA/IGdkYl9z dGR0YXJnIDogZ2RiX3N0ZHRhcmdlcnIpOworCXVpX2ZpbGVfZmx1c2ggKHRh cmdldF9mZCA9PSAxID8gZ2RiX3N0ZHRhcmcgOiBnZGJfc3RkdGFyZ2Vycik7 CiAJcmV0ID0gbGVuZ3RoOwogCWJyZWFrOwogICAgICAgZGVmYXVsdDoKZGlm ZiAtLWdpdCBhL2dkYi9yZW1vdGUtc2ltLmMgYi9nZGIvcmVtb3RlLXNpbS5j CmluZGV4IDY3YjQ2OTA5NDUuLmY5YzJmNjA1YzMgMTAwNjQ0Ci0tLSBhL2dk Yi9yZW1vdGUtc2ltLmMKKysrIGIvZ2RiL3JlbW90ZS1zaW0uYwpAQCAtMzYz LDcgKzM2Myw3IEBAIGdkYl9vc193cml0ZV9zdGRvdXQgKGhvc3RfY2FsbGJh Y2sgKnAsIGNvbnN0IGNoYXIgKmJ1ZiwgaW50IGxlbikKIHN0YXRpYyB2b2lk CiBnZGJfb3NfZmx1c2hfc3Rkb3V0IChob3N0X2NhbGxiYWNrICpwKQogewot ICBnZGJfZmx1c2ggKGdkYl9zdGR0YXJnKTsKKyAgdWlfZmlsZV9mbHVzaCAo Z2RiX3N0ZHRhcmcpOwogfQogCiAvKiBHREIgdmVyc2lvbiBvZiBvc193cml0 ZV9zdGRlcnIgY2FsbGJhY2suICAqLwpAQCAtMzg4LDcgKzM4OCw3IEBAIGdk Yl9vc193cml0ZV9zdGRlcnIgKGhvc3RfY2FsbGJhY2sgKnAsIGNvbnN0IGNo YXIgKmJ1ZiwgaW50IGxlbikKIHN0YXRpYyB2b2lkCiBnZGJfb3NfZmx1c2hf c3RkZXJyIChob3N0X2NhbGxiYWNrICpwKQogewotICBnZGJfZmx1c2ggKGdk Yl9zdGR0YXJnZXJyKTsKKyAgdWlfZmlsZV9mbHVzaCAoZ2RiX3N0ZHRhcmdl cnIpOwogfQogCiAvKiBHREIgdmVyc2lvbiBvZiBwcmludGZfZmlsdGVyZWQg Y2FsbGJhY2suICAqLwpkaWZmIC0tZ2l0IGEvZ2RiL3JlbW90ZS5jIGIvZ2Ri L3JlbW90ZS5jCmluZGV4IDNmYzlhMjYwOGUuLjA1NDgwMmY3NDQgMTAwNjQ0 Ci0tLSBhL2dkYi9yZW1vdGUuYworKysgYi9nZGIvcmVtb3RlLmMKQEAgLTY3 ODQsNyArNjc4NCw3IEBAIHJlbW90ZV9jb25zb2xlX291dHB1dCAoY29uc3Qg Y2hhciAqbXNnKQogICAgICAgdGJbMV0gPSAwOwogICAgICAgZnB1dHNfdW5m aWx0ZXJlZCAodGIsIGdkYl9zdGR0YXJnKTsKICAgICB9Ci0gIGdkYl9mbHVz aCAoZ2RiX3N0ZHRhcmcpOworICB1aV9maWxlX2ZsdXNoIChnZGJfc3RkdGFy Zyk7CiB9CiAKIHN0cnVjdCBzdG9wX3JlcGx5IDogcHVibGljIG5vdGlmX2V2 ZW50CmRpZmYgLS1naXQgYS9nZGIvdWktZmlsZS5jIGIvZ2RiL3VpLWZpbGUu YwppbmRleCA3MWI3NGJiYTE5Li5kN2QxMTM4NTZlIDEwMDY0NAotLS0gYS9n ZGIvdWktZmlsZS5jCisrKyBiL2dkYi91aS1maWxlLmMKQEAgLTkxLDcgKzkx LDcgQEAgbnVsbF9maWxlOjp3cml0ZV9hc3luY19zYWZlIChjb25zdCBjaGFy ICpidWYsIGxvbmcgc2l6ZW9mX2J1ZikKIAwKIAogdm9pZAotZ2RiX2ZsdXNo IChzdHJ1Y3QgdWlfZmlsZSAqZmlsZSkKK3VpX2ZpbGVfZmx1c2ggKHN0cnVj dCB1aV9maWxlICpmaWxlKQogewogICBmaWxlLT5mbHVzaCAoKTsKIH0KQEAg LTMxNSw3ICszMTUsNyBAQCBzdGRpb19maWxlOjpjYW5fZW1pdF9zdHlsZV9l c2NhcGUgKCkKIHZvaWQKIHN0ZGVycl9maWxlOjp3cml0ZSAoY29uc3QgY2hh ciAqYnVmLCBsb25nIGxlbmd0aF9idWYpCiB7Ci0gIGdkYl9mbHVzaCAoZ2Ri X3N0ZG91dCk7CisgIHVpX2ZpbGVfZmx1c2ggKGdkYl9zdGRvdXQpOwogICBz dGRpb19maWxlOjp3cml0ZSAoYnVmLCBsZW5ndGhfYnVmKTsKIH0KIApAQCAt MzI1LDcgKzMyNSw3IEBAIHN0ZGVycl9maWxlOjp3cml0ZSAoY29uc3QgY2hh ciAqYnVmLCBsb25nIGxlbmd0aF9idWYpCiB2b2lkCiBzdGRlcnJfZmlsZTo6 cHV0cyAoY29uc3QgY2hhciAqbGluZWJ1ZmZlcikKIHsKLSAgZ2RiX2ZsdXNo IChnZGJfc3Rkb3V0KTsKKyAgdWlfZmlsZV9mbHVzaCAoZ2RiX3N0ZG91dCk7 CiAgIHN0ZGlvX2ZpbGU6OnB1dHMgKGxpbmVidWZmZXIpOwogfQogCmRpZmYg LS1naXQgYS9nZGIvdWktZmlsZS5oIGIvZ2RiL3VpLWZpbGUuaAppbmRleCAz ZjZmMzhhNjhmLi43MTFhODg4YTJlIDEwMDY0NAotLS0gYS9nZGIvdWktZmls ZS5oCisrKyBiL2dkYi91aS1maWxlLmgKQEAgLTEwMCw3ICsxMDAsNyBAQCBw dWJsaWM6CiAvKiBBIHByZWFsbG9jYXRlZCBudWxsX2ZpbGUgc3RyZWFtLiAg Ki8KIGV4dGVybiBudWxsX2ZpbGUgbnVsbF9zdHJlYW07CiAKLWV4dGVybiB2 b2lkIGdkYl9mbHVzaCAodWlfZmlsZSAqKTsKK2V4dGVybiB2b2lkIHVpX2Zp bGVfZmx1c2ggKHVpX2ZpbGUgKik7CiAKIGV4dGVybiBpbnQgdWlfZmlsZV9p c2F0dHkgKHN0cnVjdCB1aV9maWxlICopOwogCmRpZmYgLS1naXQgYS9nZGIv dXRpbHMuYyBiL2dkYi91dGlscy5jCmluZGV4IGY3ZmFlMzU3MjkuLjVkNmY2 ODBiY2UgMTAwNjQ0Ci0tLSBhL2dkYi91dGlscy5jCisrKyBiL2dkYi91dGls cy5jCkBAIC0xNTQ0LDYgKzE1NDQsMTMgQEAgZmx1c2hfd3JhcF9idWZmZXIg KHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCiAgICAgfQogfQogCit2b2lkCitn ZGJfZmx1c2ggKHN0cnVjdCB1aV9maWxlICpzdHJlYW0pCit7CisgIGZsdXNo X3dyYXBfYnVmZmVyIChzdHJlYW0pOworICB1aV9maWxlX2ZsdXNoIChzdHJl YW0pOworfQorCiAvKiBJbmRpY2F0ZSB0aGF0IGlmIHRoZSBuZXh0IHNlcXVl bmNlIG9mIGNoYXJhY3RlcnMgb3ZlcmZsb3dzIHRoZSBsaW5lLAogICAgYSBu ZXdsaW5lIHNob3VsZCBiZSBpbnNlcnRlZCBoZXJlIHJhdGhlciB0aGFuIHdo ZW4gaXQgaGl0cyB0aGUgZW5kLgogICAgSWYgSU5ERU5UIGlzIG5vbi1udWxs LCBpdCBpcyBhIHN0cmluZyB0byBiZSBwcmludGVkIHRvIGluZGVudCB0aGUK ZGlmZiAtLWdpdCBhL2dkYi91dGlscy5oIGIvZ2RiL3V0aWxzLmgKaW5kZXgg NzljOGE2ZmM4ZC4uMTg1ZjE1NmEwYSAxMDA2NDQKLS0tIGEvZ2RiL3V0aWxz LmgKKysrIGIvZ2RiL3V0aWxzLmgKQEAgLTMyMyw2ICszMjMsOCBAQCBleHRl cm4gc3RydWN0IHVpX2ZpbGUgKipjdXJyZW50X3VpX2dkYl9zdGRpbl9wdHIg KHZvaWQpOwogZXh0ZXJuIHN0cnVjdCB1aV9maWxlICoqY3VycmVudF91aV9n ZGJfc3RkZXJyX3B0ciAodm9pZCk7CiBleHRlcm4gc3RydWN0IHVpX2ZpbGUg KipjdXJyZW50X3VpX2dkYl9zdGRsb2dfcHRyICh2b2lkKTsKIAorZXh0ZXJu IHZvaWQgZ2RiX2ZsdXNoIChzdHJ1Y3QgdWlfZmlsZSAqKTsKKwogLyogVGhl IGN1cnJlbnQgdG9wIGxldmVsJ3MgdWlfZmlsZSBzdHJlYW1zLiAgKi8KIAog LyogTm9ybWFsIHJlc3VsdHMgKi8K --b1_9aeaa12f9293435892e98e4456c478b9--