From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from sonic314-20.consmr.mail.ir2.yahoo.com (sonic314-20.consmr.mail.ir2.yahoo.com [77.238.177.146]) by sourceware.org (Postfix) with ESMTPS id DB0033844007 for ; Thu, 27 May 2021 18:31:12 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org DB0033844007 X-SONIC-DKIM-SIGN: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yahoo.com; s=s2048; t=1622140271; bh=k6SaAtQkIOamRdRKJ9lcjNgX4dBLTcn5zEEAVvrZNH6=; h=X-Sonic-MF:Date:From:To:Subject:From:Subject; b=jOJ4atLk7HajsHYdql0c9VvEJz1dim6753+Bh04c91V/K9CA7XgwVhXehYZ8AdSxLOQDI3E0oq3wAA+P0nBZde3vjbJgwModZ64V5ixqbFrWO+CFMEarGhbDwDxCfRmOK6lXqS6aX87MdXbRvcptPl43pIxKXp0q5dt7tM9xYQIPSE7Z+qRTDv2aD2jHfIeO4vCvEbTGl39QAy4QoU5jXkwgtoYZGr54HJ4Qij28udvhPjJP3g6DHmpTx27tjha5fm6LxIHdqhIIYO2JFwY0prKe3X5uDOvKk+YE9ZAenY/SKMN4aw1mH/7uzZ5Sh/PRXqEplkXw1ONum3xw41gexQ== X-YMail-OSG: IpNG6K8VM1mUIWhPDIWtcQE7pZEuWeIb3uLmCI9FnhBLFikrnR.Xyl5obPjdkC9 k3yDq0eowiyf8yZvLx41f05Rab6.t2E3E2Qp6Jhn5N4Fz_peMy.HoMIY_KKFSIq6Gmw3DZY5Lc2w sX6WKbBeOACamAKQGrDXkRX.EFTctsOPhZ8ztQY7Gvoq0novR2QvKOPbG0IvJU8chLJwIIlzl2nn fMwKfWLwxZqutlVEp_YXIOIRTMRTQ7ZrHlK0H4YcaFP64a.q51ZQ8mRLyaf.c4Yn6Ds_YwJfX4wN 0C7psCBD4KWYDD5uN9FTWm47Cdw4QTcxEhZAfvKvwCH3U3mG61zYnCIUoTKELBUKXBYF61jB4xI3 dd4NFAGJxX8b9VnZLbSv2C2.D1wJiLTl5BmDn1eXVqeaITlegmOZ3wsOyPkHM7gXZbAyolOy5PeJ oHH5aBazdPd8NH356ZXpy5rntKcDjkeIh8GleXsWFQoKOVSji.UD8zgOHlIADNarq1oceS7kieTa _QAhs_mWOnB0qsGxIbq2xyk_wvRnCAkNzPFjzdKJg3l1LaKbm2KjAoTYY.DWZe90KNLuR6fCL_gd 1ed6.EwMYNNIfENHVQ7h.HNxP_2Sn_oQ8bWizckBlcZwUdQEgzJ8KykDUjYrQfqNg77HrUxHmhLJ 1.UfOy0ld6qAliUyjfRdnrWy9tiCZuZj5VncEWMzJWDRFi7776RIZo3xdlK40yesG0yNZpBzM3Qe N3LD5AkDjFDHUrWtWRfoahTa555cb_UPxmnPjBmaLDUY2fS72d.to2ZoRuUQhAL1G37AnVjCk.Km hn8iuOfULiBcQZ9zx_MKNK4UwNJPNFfYFvxcgWWzT8n23RWxAostcvAxj8AMRvyHNkVkvDMCFXfs 0W.QwOTOk0uQ8dqqUO0DXGdod7k_rQzJJJUq8i3PG3xcH5cMp.2CWa3uYqhyFdGwM21cOXW8WqnJ tabARMd37sWe4iv89U6nJxPL2IIwzO5FQWYLknNAEkRiHbl_6qGiHLelbV2zJjyNMLTEpFgat3Rr IgLGWv_Pn8mHZjfrLaVjzu3hG5ocqMm_fTE6q5pIWPPJtZMJzmvRXIWDXDTolqUuyp5a9.zJEJp0 ohAkPJqVLBbf7zmcKw62YalFriQvyb6T6hHWSaeDPPvalFxyooP5zrNRSSKUtZXkcs27G3GeAWw4 icIG5K9LAKGLh5zoDxW8MMrjWs0PSBKNxacTCEIBUpJRf3ioULGfg8BABzNQCnsc9BAhOtWxPZ1J GEOZTjAoKOKErUgFhybYcxl8IIBbbmHWfFXIGouPjFOGqf1kgCnu8LEFUAc.PJh6.7DaMy7ePmbI KpQ0wl8srOg3zSRuT59EJF6kw1s8j259yr.guM00KDAlmrMPA7HjT8Sb1ny52bq5CW8CI5om4m9K RT0IKtKQ21ng71GQ10zdDPtIKzUb0Ih4UHxn_laGUWaVEjICLmzo7dKdjbQFsRpp9OtUEr_Qs1MB sRpQwPAvwgu20g0dBY3jpZCVHpgtqf_nWx9QKW6lANWhUffyl1yPiFyFgT..kQo3qpzNYePdaiwC y0AiqomWA1EnyKugzFccIkSYrrn_YNz3N8zxEAKSbSjbCoWQzVtcwtdiDlrTY_iXwH13vbP9q0Kz yFCUldwKfCP2bzsJQ3BvunekusFWEl6peF6FP9JjulcpfjZOv5R9T6BN5MuPv23EDvpvyav8kNDL tcqk6TtkJSc6hCe774a3QKuhVhWoyIIoK_gJKW8QruWKqBmFG5_eHImtHZVLPjETxQ8j8M2n1SNK Vo.HEwX5IzIBS.nWdjbp97XRc3np5Ge4rDXQtkuW6uI829k9TwgBPyt_sug6ytk9D1.t4qj0Fne. AcKAyN6b5ilRepSqbBIO0NeuFTwMiFpyIa4_4msoCn37Fwffc6fdev37Ehzn_pHR4Re9yUDmw4X. epqfXSU4itIYkPAavhosVO6qCcBh6NcpiBAJ9NVgmkb02l4FBi.p9RGVIq541A70VKiIVZTxHnKM GcOTI5BwYxADJm1HkYd6eEJgKjJJK8MvUomje1205JDQrFOJBW9ezlJeHarbq.9mpG2yikqHUABx gQOll9raDVDZxpuDxsVj4EgIlgriIF31u4jQ.tPzbMAqc3XKq7QNk1.gt09QAwgmjNx6UWBRB07A Sh7HRJvsS_MMoQQ4iXp4N7p1kTSWY0I7UDlrZdB3xVhrB_G9pBh3TwsHwRUCy8WOfb9yQS1z4S3Q .nJnhihvBoatuzajfACkcLt9hYKGge485FQ8JC.GGB_ubBbYUy3VkXoe3kBNygv7.LHDfcbnP8Xm PlbUZwSA44qk17NcdlNndeM1N1oIY4MNcDO376oSVed1xfKIpndioCqptbsrOLuSB58DWWo3Ro4U Vavgfnw4FmXtBrKq.ZgSUi7QMddp2Niy9.VAnlNi6nUTcEBEtt1XQm7E4qMABmz9KX2fr3ValKhc KRKxv66QvZKTNU4cZAnYhbhUE1aLSWXCC3hGKSFGz3_1tnUEr_LveEkaM03GRtGWkEYTd2o_J1pV FyJpnZFiwsV2.dyMIEgFGrFzxdzM- X-Sonic-MF: Received: from sonic.gate.mail.ne1.yahoo.com by sonic314.consmr.mail.ir2.yahoo.com with HTTP; Thu, 27 May 2021 18:31:11 +0000 Date: Thu, 27 May 2021 18:31:06 +0000 (UTC) From: Hannes Domani To: Andrew Burgess Cc: "gdb-patches@sourceware.org" Message-ID: <859703302.1358087.1622140266626@mail.yahoo.com> In-Reply-To: <981574547.1965792.1621248848432@mail.yahoo.com> References: <20210131134611.3255-1-ssbssa.ref@yahoo.de> <20210131134611.3255-1-ssbssa@yahoo.de> <20210517094824.GM3067949@embecosm.com> <981574547.1965792.1621248848432@mail.yahoo.com> Subject: Re: [PATCH v2] Fix raw-frame-arguments in combination with frame-filters MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable X-Mailer: WebService/1.1.18368 YMailNorrin X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00, BODY_8BITS, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 27 May 2021 18:31:14 -0000 Ping. I'm not sure how to continue here. Am Montag, 17. Mai 2021, 12:54:19 MESZ hat Hannes Domani via Gdb-patches Folgendes geschrieben: > Am Montag, 17. Mai 2021, 11:48:27 MESZ hat Andrew Burgess Folgendes geschrieben: > > > * Hannes Domani via Gdb-patches [2021-01-3= 1 14:46:11 +0100]: > > > > > Currently, if frame-filters are active, raw-values is used instead of > > > raw-frame-arguments to decide if a pretty-printer should be invoked f= or > > > frame arguments in a backtrace. > > > > > > In this example, "super struct" is the output of the pretty-printer: > > > > > >=C2=A0=C2=A0=C2=A0 (gdb) disable frame-filter global BasicFrameFilter > > >=C2=A0=C2=A0=C2=A0 (gdb) bt > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3Dsuper struct =3D {...}) = at C:/src/repos/gdb-testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > > > > > If no frame-filter is active, then the raw-values print option does n= ot > > > affect the backtrace output: > > > > > >=C2=A0=C2=A0=C2=A0 (gdb) set print raw-values on > > >=C2=A0=C2=A0=C2=A0 (gdb) bt > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3Dsuper struct =3D {...}) = at C:/src/repos/gdb-testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > >=C2=A0=C2=A0=C2=A0 (gdb) set print raw-values off > > > > > > Instead, the raw-frame-arguments option disables the pretty-printer i= n the > > > backtrace: > > > > > >=C2=A0=C2=A0=C2=A0 (gdb) bt -raw-frame-arguments on > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3D...) at C:/src/repos/gdb= -testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > > > > > But if a frame-filter is active, the same rules don't apply. > > > The option raw-frame-arguments is ignored, but raw-values decides if = the > > > pretty-printer is used: > > > > > >=C2=A0=C2=A0=C2=A0 (gdb) enable frame-filter global BasicFrameFilter > > >=C2=A0=C2=A0=C2=A0 (gdb) bt > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3Dsuper struct =3D {...}) = at C:/src/repos/gdb-testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > >=C2=A0=C2=A0=C2=A0 (gdb) set print raw-values on > > >=C2=A0=C2=A0=C2=A0 (gdb) bt > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3D...) at C:/src/repos/gdb= -testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > >=C2=A0=C2=A0=C2=A0 (gdb) set print raw-values off > > >=C2=A0=C2=A0=C2=A0 (gdb) bt -raw-frame-arguments on > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3Dsuper struct =3D {...}) = at C:/src/repos/gdb-testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > > > > > So this adds the PRINT_RAW_FRAME_ARGUMENTS flag to frame_filter_flag,= which > > > is then used in the frame-filter to override the raw flag in enumerat= e_args. > > > > > > Then the output is the same if a frame-filter is active, the pretty-p= rinter > > > for backtraces is only disabled with the raw-frame-arguments option: > > > > > >=C2=A0=C2=A0=C2=A0 (gdb) enable frame-filter global BasicFrameFilter > > >=C2=A0=C2=A0=C2=A0 (gdb) bt > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3Dsuper struct =3D {...}) = at C:/src/repos/gdb-testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > >=C2=A0=C2=A0=C2=A0 (gdb) set print raw-values on > > >=C2=A0=C2=A0=C2=A0 (gdb) bt > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3Dsuper struct =3D {...}) = at C:/src/repos/gdb-testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > >=C2=A0=C2=A0=C2=A0 (gdb) set print raw-values off > > >=C2=A0=C2=A0=C2=A0 (gdb) bt -raw-frame-arguments on > > >=C2=A0=C2=A0=C2=A0 #0=C2=A0 foo (x=3D42, ss=3D...) at C:/src/repos/gdb= -testsuite/gdb/testsuite/gdb.python/py-frame-args.c:47 > > >=C2=A0=C2=A0=C2=A0 #1=C2=A0 0x004016aa in main () at C:/src/repos/gdb-= testsuite/gdb/testsuite/gdb.python/py-frame-args.c:57 > > > > Thanks for working on improving this behaviour. > > > > I think that there's something weird going on with the MI behaviour. > > > > I ran the py-frame-args.c test program, stopped at line 47, then I see > > this: > > > >=C2=A0=C2=A0 (gdb) set print raw-frame-arguments off > >=C2=A0=C2=A0 (gdb) set print raw-values off > >=C2=A0=C2=A0 (gdb) interpreter-exec mi "-stack-list-variables 1" > >=C2=A0=C2=A0 ^done,variables=3D[{name=3D"x",arg=3D"1",value=3D"42"},{nam= e=3D"ss",arg=3D"1",value=3D"super struct =3D {\n=C2=A0 a =3D m=3D<1>,\n=C2= =A0 b =3D m=3D<2>\n}"}] > >=C2=A0=C2=A0 (gdb) interpreter-exec mi "-stack-list-arguments 1" > >=C2=A0=C2=A0 ^done,stack-args=3D[frame=3D{level=3D"0",args=3D[{name=3D"x= ",value=3D"42"},{name=3D"ss",value=3D"super struct =3D {\n=C2=A0 a =3D m=3D= <1>,\n=C2=A0 b =3D m=3D<2>\n}"}]},frame=3D{level=3D"1",args=3D[]}] > > > >=C2=A0=C2=A0 (gdb) set print raw-frame-arguments on > >=C2=A0=C2=A0 (gdb) interpreter-exec mi "-stack-list-arguments 1" > >=C2=A0=C2=A0 ^done,stack-args=3D[frame=3D{level=3D"0",args=3D[{name=3D"x= ",value=3D"42"},{name=3D"ss",value=3D"super struct =3D {\n=C2=A0 a =3D m=3D= <1>,\n=C2=A0 b =3D m=3D<2>\n}"}]},frame=3D{level=3D"1",args=3D[]}] > >=C2=A0=C2=A0 (gdb) interpreter-exec mi "-stack-list-variables 1" > >=C2=A0=C2=A0 ^done,variables=3D[{name=3D"x",arg=3D"1",value=3D"42"},{nam= e=3D"ss",arg=3D"1",value=3D"super struct =3D {\n=C2=A0 a =3D m=3D<1>,\n=C2= =A0 b =3D m=3D<2>\n}"}] > > > >=C2=A0=C2=A0 (gdb) set print raw-values on > >=C2=A0=C2=A0 (gdb) interpreter-exec mi "-stack-list-arguments 1" > >=C2=A0=C2=A0 ^done,stack-args=3D[frame=3D{level=3D"0",args=3D[{name=3D"x= ",value=3D"42"},{name=3D"ss",value=3D"super struct =3D {\n=C2=A0 a =3D m=3D= <1>,\n=C2=A0 b =3D m=3D<2>\n}"}]},frame=3D{level=3D"1",args=3D[]}] > >=C2=A0=C2=A0 (gdb) interpreter-exec mi "-stack-list-variables 1" > >=C2=A0=C2=A0 ^done,variables=3D[{name=3D"x",arg=3D"1",value=3D"42"},{nam= e=3D"ss",arg=3D"1",value=3D"{\n=C2=A0 a =3D {\n=C2=A0=C2=A0=C2=A0 m =3D 1\n= =C2=A0 },\n=C2=A0 b =3D {\n=C2=A0=C2=A0=C2=A0 m =3D 2\n=C2=A0 }\n}"}] > >=C2=A0=C2=A0 (gdb) > > > > The summary is: > > > >=C2=A0=C2=A0 - when just doing '-stack-list-arguments' neither 'set prin= t > >=C2=A0=C2=A0=C2=A0=C2=A0 raw-values' or 'set print raw-frame-arguments' = seem to effect what > >=C2=A0=C2=A0=C2=A0=C2=A0 is printed, and > > > >=C2=A0=C2=A0 - when doing '-stack-list-variables', 'set print raw-values= ' seems > >=C2=A0=C2=A0=C2=A0=C2=A0 to effect how arguments are printed, but 'set p= rint > >=C2=A0=C2=A0=C2=A0=C2=A0 raw-frame-arguments' does not. > > > > I guess I would expect 'set print raw-frame-arguments' to be the > > controlling option in both these cases. > > I'm not completely sure now, is that something this patch breaks? > Or do you mean this should be fixed as well, since it's a very similar pr= oblem?