<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE bugzilla SYSTEM "https://bugs.kde.org/page.cgi?id=bugzilla.dtd">

<bugzilla version="5.0.6"
          urlbase="https://bugs.kde.org/"
          
          maintainer="sysadmin@kde.org"
>

    <bug>
          <bug_id>471311</bug_id>
          
          <creation_ts>2023-06-21 22:09:00 +0000</creation_ts>
          <short_desc>gdb --multi mode stdout redirecting to stderr</short_desc>
          <delta_ts>2023-08-21 16:03:56 +0000</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>6</classification_id>
          <classification>Developer tools</classification>
          <product>valgrind</product>
          <component>general</component>
          <version>3.21.0</version>
          <rep_platform>Other</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>NOR</priority>
          <bug_severity>normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Wielaard">mark</reporter>
          <assigned_to name="Mark Wielaard">mark</assigned_to>
          <cc>ahajkova</cc>
          
          <cf_commitlink></cf_commitlink>
          <cf_versionfixedin></cf_versionfixedin>
          <cf_sentryurl></cf_sentryurl>
          <votes>0</votes>

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>2237645</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Wielaard">mark</who>
    <bug_when>2023-06-21 22:09:00 +0000</bug_when>
    <thetext>Sasha is working on a real solution for redirecting all of the stdin/out/err file descriptors:
https://git.sr.ht/~sasshka/binutils-gdb/log/split_fd

But that needs a new gdb that understand the new proposed FdSwitch packet.

As a temporary workaround we can at least redirect stdout to stderr (and close stdin) for the inferior (unless --port is used).

Something like:
/* close stdin */
close (0);
/* open /dev/null as new stdin */
open (&quot;/dev/null&quot;, O_RDONLY);
/* redirect stdout as stderr */
dup2 (2, 1);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2247053</commentid>
    <comment_count>1</comment_count>
      <attachid>161024</attachid>
    <who name="Mark Wielaard">mark</who>
    <bug_when>2023-08-17 13:45:48 +0000</bug_when>
    <thetext>Created attachment 161024
gdb --multi mode stdout redirecting to stderr

Implementing this is almost trivial, see attached.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2247674</commentid>
    <comment_count>2</comment_count>
    <who name="Mark Wielaard">mark</who>
    <bug_when>2023-08-21 16:03:56 +0000</bug_when>
    <thetext>commit b35a8ed5a9575dbadb7e2a84bd4b6c4ab9eda21a
Author: Mark Wielaard &lt;mark@klomp.org&gt;
Date:   Thu Aug 17 15:40:30 2023 +0200

    gdb --multi mode stdout redirecting to stderr
    
    When in stdio mode (talking to gdb through stdin/stdout, not
    through a socket), redirect stdout to stderr and close stdin
    for the inferior. That way at least some output can be seen,
    but there will be no input.
    
    This is workaround till we have real terminal handling.
    
         * coregrind/vgdb.c (main): Pass in_port to do_multi_mode.
         (do_multi_mode): Pass in_port to fork_and_exec_valgrind.
         (fork_and_exec_valgrind): Close stdin, redirect stdout to
         stderr if in_port &lt;= 0.
    
    https://bugs.kde.org/show_bug.cgi?id=471311</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>161024</attachid>
            <date>2023-08-17 13:45:48 +0000</date>
            <delta_ts>2023-08-17 13:45:48 +0000</delta_ts>
            <desc>gdb --multi mode stdout redirecting to stderr</desc>
            <filename>0001-gdb-multi-mode-stdout-redirecting-to-stderr.patch</filename>
            <type>text/plain</type>
            <size>3907</size>
            <attacher name="Mark Wielaard">mark</attacher>
            
              <data encoding="base64">RnJvbSA0NDlkZDgyYmVjYWU2NTMzYThlNjU4ZTc2ZjMwZjY1NDM0ZjY0MTdmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXJrIFdpZWxhYXJkIDxtYXJrQGtsb21wLm9yZz4KRGF0ZTog
VGh1LCAxNyBBdWcgMjAyMyAxNTo0MDozMCArMDIwMApTdWJqZWN0OiBbUEFUQ0hdIGdkYiAtLW11
bHRpIG1vZGUgc3Rkb3V0IHJlZGlyZWN0aW5nIHRvIHN0ZGVycgoKV2hlbiBpbiBzdGRpbyBtb2Rl
ICh0YWxraW5nIHRvIGdkYiB0aHJvdWdoIHN0ZGluL3N0ZG91dCwgbm90CnRocm91Z2ggYSBzb2Nr
ZXQpLCByZWRpcmVjdCBzdGRvdXQgdG8gc3RkZXJyIGFuZCBjbG9zZSBzdGRpbgpmb3IgdGhlIGlu
ZmVyaW9yLiBUaGF0IHdheSBhdCBsZWFzdCBzb21lIG91dHB1dCBjYW4gYmUgc2VlbiwKYnV0IHRo
ZXJlIHdpbGwgYmUgbm8gaW5wdXQuCgpUaGlzIGlzIHdvcmthcm91bmQgdGlsbCB3ZSBoYXZlIHJl
YWwgdGVybWluYWwgaGFuZGxpbmcuCgogICAgICogY29yZWdyaW5kL3ZnZGIuYyAobWFpbik6IFBh
c3MgaW5fcG9ydCB0byBkb19tdWx0aV9tb2RlLgogICAgIChkb19tdWx0aV9tb2RlKTogUGFzcyBp
bl9wb3J0IHRvIGZvcmtfYW5kX2V4ZWNfdmFsZ3JpbmQuCiAgICAgKGZvcmtfYW5kX2V4ZWNfdmFs
Z3JpbmQpOiBDbG9zZSBzdGRpbiwgcmVkaXJlY3Qgc3Rkb3V0IHRvCiAgICAgc3RkZXJyIGlmIGlu
X3BvcnQgPD0gMC4KCmh0dHBzOi8vYnVncy5rZGUub3JnL3Nob3dfYnVnLmNnaT9pZD00NzEzMTEK
LS0tCiBORVdTICAgICAgICAgICAgIHwgIDEgKwogY29yZWdyaW5kL3ZnZGIuYyB8IDIwICsrKysr
KysrKysrKysrKysrLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDE4IGluc2VydGlvbnMoKyksIDMgZGVs
ZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvTkVXUyBiL05FV1MKaW5kZXggMDU1ZGM0MTk0Li45ZDBj
YTJmMTUgMTAwNjQ0Ci0tLSBhL05FV1MKKysrIGIvTkVXUwpAQCAtNDUsNiArNDUsNyBAQCBhcmUg
bm90IGVudGVyZWQgaW50byBidWd6aWxsYSB0ZW5kIHRvIGdldCBmb3Jnb3R0ZW4gYWJvdXQgb3Ig
aWdub3JlZC4KICAgICAgICAgQXNzZXJ0aW9uICdyZXNvbHZlZCcgZmFpbGVkCiA0NzA4MzAgIERv
bid0IHByaW50IGFjdGlvbnMgdmdkYiBtZSAuLi4gY29udGludWUgZm9yIHZnZGIgLS1tdWx0aSBt
b2RlCiA0NzA5NzggIHMzOTB4OiBWYWxncmluZCBjYW5ub3Qgc3RhcnQgcWVtdS1rdm0gd2hlbiAi
c3lzY3RsIHZtLmFsbG9jYXRlX3Bnc3RlPTAiCis0NzEzMTEgIGdkYiAtLW11bHRpIG1vZGUgc3Rk
b3V0IHJlZGlyZWN0aW5nIHRvIHN0ZGVycgogNDcxODA3ICBBZGQgc3VwcG9ydCBmb3IgbGF6eSBy
ZWFkaW5nIGFuZCBkb3dubG9hZGluZyBvZiBEV0FSRiBkZWJ1Z2luZm8KIDQ3MjIxOSAgU3lzY2Fs
bCBwYXJhbSBwcG9sbCh1ZmRzLmV2ZW50cykgcG9pbnRzIHRvIHVuaW5pdGlhbGlzZWQgYnl0ZShz
KQogCmRpZmYgLS1naXQgYS9jb3JlZ3JpbmQvdmdkYi5jIGIvY29yZWdyaW5kL3ZnZGIuYwppbmRl
eCA1NmE5NjlkZTcuLmMwMjRmZmNhNiAxMDA2NDQKLS0tIGEvY29yZWdyaW5kL3ZnZGIuYworKysg
Yi9jb3JlZ3JpbmQvdmdkYi5jCkBAIC0xMTU5LDcgKzExNTksNyBAQCBzdGF0aWMgdm9pZCBnZGJf
cmVsYXkoaW50IHBpZCwgaW50IHNlbmRfbm9hY2tfbW9kZSwgY2hhciAqcV9idWYpOwogICAgb3Ig
dGhlIGVycm5vIGZyb20gdGhlIGNoaWxkIG9uIGZhaWx1cmUuICAqLwogc3RhdGljCiBpbnQgZm9y
a19hbmRfZXhlY192YWxncmluZCAoaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICp3
b3JraW5nX2RpciwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBwaWRfdCAqcGlkKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGludCBpbl9wb3J0LCBwaWRfdCAqcGlkKQogewogICAg
aW50IGVyciA9IDA7CiAgICAvLyBXZSB3aWxsIHVzZSBhIHBpcGUgdG8gdHJhY2sgd2hhdCB0aGUg
Y2hpbGQgZG9lcywKQEAgLTEyNDMsNiArMTI0MywxOSBAQCBpbnQgZm9ya19hbmRfZXhlY192YWxn
cmluZCAoaW50IGFyZ2MsIGNoYXIgKiphcmd2LCBjb25zdCBjaGFyICp3b3JraW5nX2RpciwKICAg
ICAgICAgIH0KICAgICAgIH0KIAorICAgICAgLyogV2hlbiBpbiBzdGRpbyBtb2RlICh0YWxraW5n
IHRvIGdkYiB0aHJvdWdoIHN0ZGluL3N0ZG91dCwgbm90CisgICAgICAgICB0aHJvdWdoIGEgc29j
a2V0KSwgcmVkaXJlY3Qgc3Rkb3V0IHRvIHN0ZGVyciBhbmQgY2xvc2Ugc3RkaW4KKyAgICAgICAg
IGZvciB0aGUgaW5mZXJpb3IuIFRoYXQgd2F5IGF0IGxlYXN0IHNvbWUgb3V0cHV0IGNhbiBiZSBz
ZWVuLAorICAgICAgICAgYnV0IHRoZXJlIHdpbGwgYmUgbm8gaW5wdXQuICAqLworICAgICAgaWYg
KGluX3BvcnQgPD0gMCkgeworICAgICAgICAgLyogY2xvc2Ugc3RkaW4gKi8KKyAgICAgICAgIGNs
b3NlICgwKTsKKyAgICAgICAgIC8qIG9wZW4gL2Rldi9udWxsIGFzIG5ldyBzdGRpbiAqLworICAg
ICAgICAgb3BlbiAoIi9kZXYvbnVsbCIsIE9fUkRPTkxZKTsKKyAgICAgICAgIC8qIHJlZGlyZWN0
IHN0ZG91dCBhcyBzdGRlcnIgKi8KKyAgICAgICAgIGR1cDIgKDIsIDEpOworICAgICAgfQorCiAg
ICAgICAvKiBUcnkgdG8gbGF1bmNoIHZhbGdyaW5kLiBBZGQgLS12Z2RiLWVycm9yPTAgdG8gc3Rv
cCBpbW1lZGlhdGVseSBzbyB3ZQogICAgICAgICAgY2FuIGF0dGFjaCBhbmQgLS1sYXVuY2hlZC13
aXRoLW11bHRpIHRvIGxldCB2YWxncmluZCBrbm93IGl0IGRvZXNuJ3QKICAgICAgICAgIG5lZWQg
dG8gc2hvdyBhIGJhbm5lciBob3cgdG8gY29ubmVjdCB0byBnZGIsIHdlIHdpbGwgZG8gdGhhdApA
QCAtMTMwOSw3ICsxMzIyLDcgQEAgaW50IGZvcmtfYW5kX2V4ZWNfdmFsZ3JpbmQgKGludCBhcmdj
LCBjaGFyICoqYXJndiwgY29uc3QgY2hhciAqd29ya2luZ19kaXIsCiAKIC8qIERvIG11bHRpIHN0
dWZmLiAgKi8KIHN0YXRpYwotdm9pZCBkb19tdWx0aV9tb2RlKGludCBjaGVja190cmlhbHMpCit2
b2lkIGRvX211bHRpX21vZGUoaW50IGNoZWNrX3RyaWFscywgaW50IGluX3BvcnQpCiB7CiAgICBj
aGFyICpidWYgPSB2bWFsbG9jKFBCVUZTSVorMSk7CiAgICBjaGFyICpxX2J1ZiA9IHZtYWxsb2Mo
UEJVRlNJWisxKTsgLy9zYXZlIHRoZSBxU3VwcG9ydGVkIHBhY2tldCBzZW50IGJ5IGdkYgpAQCAt
MTQ1OSw2ICsxNDcyLDcgQEAgdm9pZCBkb19tdWx0aV9tb2RlKGludCBjaGVja190cmlhbHMpCiAg
ICAgICAgICAgICAgaW50IHJlcyA9IGZvcmtfYW5kX2V4ZWNfdmFsZ3JpbmQgKGNvdW50LAogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvZGVkX3N0cmlu
ZywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd29ya2lu
Z19kaXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlu
X3BvcnQsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICZ2
YWxncmluZF9waWQpOwogCiAgICAgICAgICAgICAgaWYgKHJlcyA9PSAwKSB7CkBAIC0yNDI3LDcg
KzI0NDEsNyBAQCBpbnQgbWFpbihpbnQgYXJnYywgY2hhcioqIGFyZ3YpCiAgICBpZiAobXVsdGlf
bW9kZSkgewogICAgICAgLyogY2hlY2tfdHJhaWxzIGlzIHRoZSAtLXdhaXQgYXJndW1lbnQgaW4g
c2Vjb25kcywgZGVmYXVsdGluZyB0byAxCiAgICAgICAgKiBpZiBub3QgZ2l2ZW4uICAqLwotICAg
ICAgZG9fbXVsdGlfbW9kZSAoY2hlY2tfdHJpYWxzKTsKKyAgICAgIGRvX211bHRpX21vZGUgKGNo
ZWNrX3RyaWFscywgaW5fcG9ydCk7CiAgICB9IGVsc2UgaWYgKGxhc3RfY29tbWFuZCA+PSAwKSB7
CiAgICAgICBzdGFuZGFsb25lX3NlbmRfY29tbWFuZHMocGlkLCBsYXN0X2NvbW1hbmQsIGNvbW1h
bmRzKTsKICAgIH0gZWxzZSB7Ci0tIAoyLjQxLjAKCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>