[PATCH 08/12] Use filtered output in btrace-related commands
Metzger, Markus T
markus.t.metzger@intel.com
Mon Jan 10 11:56:02 GMT 2022
Btrace is not using any of the GDB printf format specifiers. IIUC the motivation for those changes is to fix pagination. There should probably be a comment in utils.h discouraging the use of printf_unfiltered. The way I read it now is that one needs to use printf_filtered if one wants to use some additional format specififiers. The default, in that case, would be to use printf_unfiltered. But that's not what we want people to use, apparently.
Regards,
Markus.
>-----Original Message-----
>From: Gdb-patches <gdb-patches-
>bounces+markus.t.metzger=intel.com@sourceware.org> On Behalf Of Tom
>Tromey
>Sent: Saturday, January 1, 2022 6:55 PM
>To: gdb-patches@sourceware.org
>Cc: Tom Tromey <tom@tromey.com>
>Subject: [PATCH 08/12] Use filtered output in btrace-related commands
>
>This changes btrace.c and record-btrace.c to use filtered output in
>the commands implemented there.
>---
> gdb/btrace.c | 126 ++++++++++++++++++++++----------------------
> gdb/record-btrace.c | 46 ++++++++--------
> 2 files changed, 86 insertions(+), 86 deletions(-)
>
>diff --git a/gdb/btrace.c b/gdb/btrace.c
>index 3962636d993..ba10f78e7bf 100644
>--- a/gdb/btrace.c
>+++ b/gdb/btrace.c
>@@ -2852,122 +2852,122 @@ pt_print_packet (const struct pt_packet *packet)
> switch (packet->type)
> {
> default:
>- printf_unfiltered (("[??: %x]"), packet->type);
>+ printf_filtered (("[??: %x]"), packet->type);
> break;
>
> case ppt_psb:
>- printf_unfiltered (("psb"));
>+ printf_filtered (("psb"));
> break;
>
> case ppt_psbend:
>- printf_unfiltered (("psbend"));
>+ printf_filtered (("psbend"));
> break;
>
> case ppt_pad:
>- printf_unfiltered (("pad"));
>+ printf_filtered (("pad"));
> break;
>
> case ppt_tip:
>- printf_unfiltered (("tip %u: 0x%" PRIx64 ""),
>- packet->payload.ip.ipc,
>- packet->payload.ip.ip);
>+ printf_filtered (("tip %u: 0x%" PRIx64 ""),
>+ packet->payload.ip.ipc,
>+ packet->payload.ip.ip);
> break;
>
> case ppt_tip_pge:
>- printf_unfiltered (("tip.pge %u: 0x%" PRIx64 ""),
>- packet->payload.ip.ipc,
>- packet->payload.ip.ip);
>+ printf_filtered (("tip.pge %u: 0x%" PRIx64 ""),
>+ packet->payload.ip.ipc,
>+ packet->payload.ip.ip);
> break;
>
> case ppt_tip_pgd:
>- printf_unfiltered (("tip.pgd %u: 0x%" PRIx64 ""),
>- packet->payload.ip.ipc,
>- packet->payload.ip.ip);
>+ printf_filtered (("tip.pgd %u: 0x%" PRIx64 ""),
>+ packet->payload.ip.ipc,
>+ packet->payload.ip.ip);
> break;
>
> case ppt_fup:
>- printf_unfiltered (("fup %u: 0x%" PRIx64 ""),
>- packet->payload.ip.ipc,
>- packet->payload.ip.ip);
>+ printf_filtered (("fup %u: 0x%" PRIx64 ""),
>+ packet->payload.ip.ipc,
>+ packet->payload.ip.ip);
> break;
>
> case ppt_tnt_8:
>- printf_unfiltered (("tnt-8 %u: 0x%" PRIx64 ""),
>- packet->payload.tnt.bit_size,
>- packet->payload.tnt.payload);
>+ printf_filtered (("tnt-8 %u: 0x%" PRIx64 ""),
>+ packet->payload.tnt.bit_size,
>+ packet->payload.tnt.payload);
> break;
>
> case ppt_tnt_64:
>- printf_unfiltered (("tnt-64 %u: 0x%" PRIx64 ""),
>- packet->payload.tnt.bit_size,
>- packet->payload.tnt.payload);
>+ printf_filtered (("tnt-64 %u: 0x%" PRIx64 ""),
>+ packet->payload.tnt.bit_size,
>+ packet->payload.tnt.payload);
> break;
>
> case ppt_pip:
>- printf_unfiltered (("pip %" PRIx64 "%s"), packet->payload.pip.cr3,
>- packet->payload.pip.nr ? (" nr") : (""));
>+ printf_filtered (("pip %" PRIx64 "%s"), packet->payload.pip.cr3,
>+ packet->payload.pip.nr ? (" nr") : (""));
> break;
>
> case ppt_tsc:
>- printf_unfiltered (("tsc %" PRIx64 ""), packet->payload.tsc.tsc);
>+ printf_filtered (("tsc %" PRIx64 ""), packet->payload.tsc.tsc);
> break;
>
> case ppt_cbr:
>- printf_unfiltered (("cbr %u"), packet->payload.cbr.ratio);
>+ printf_filtered (("cbr %u"), packet->payload.cbr.ratio);
> break;
>
> case ppt_mode:
> switch (packet->payload.mode.leaf)
> {
> default:
>- printf_unfiltered (("mode %u"), packet->payload.mode.leaf);
>+ printf_filtered (("mode %u"), packet->payload.mode.leaf);
> break;
>
> case pt_mol_exec:
>- printf_unfiltered (("mode.exec%s%s"),
>- packet->payload.mode.bits.exec.csl
>- ? (" cs.l") : (""),
>- packet->payload.mode.bits.exec.csd
>- ? (" cs.d") : (""));
>+ printf_filtered (("mode.exec%s%s"),
>+ packet->payload.mode.bits.exec.csl
>+ ? (" cs.l") : (""),
>+ packet->payload.mode.bits.exec.csd
>+ ? (" cs.d") : (""));
> break;
>
> case pt_mol_tsx:
>- printf_unfiltered (("mode.tsx%s%s"),
>- packet->payload.mode.bits.tsx.intx
>- ? (" intx") : (""),
>- packet->payload.mode.bits.tsx.abrt
>- ? (" abrt") : (""));
>+ printf_filtered (("mode.tsx%s%s"),
>+ packet->payload.mode.bits.tsx.intx
>+ ? (" intx") : (""),
>+ packet->payload.mode.bits.tsx.abrt
>+ ? (" abrt") : (""));
> break;
> }
> break;
>
> case ppt_ovf:
>- printf_unfiltered (("ovf"));
>+ printf_filtered (("ovf"));
> break;
>
> case ppt_stop:
>- printf_unfiltered (("stop"));
>+ printf_filtered (("stop"));
> break;
>
> case ppt_vmcs:
>- printf_unfiltered (("vmcs %" PRIx64 ""), packet->payload.vmcs.base);
>+ printf_filtered (("vmcs %" PRIx64 ""), packet->payload.vmcs.base);
> break;
>
> case ppt_tma:
>- printf_unfiltered (("tma %x %x"), packet->payload.tma.ctc,
>- packet->payload.tma.fc);
>+ printf_filtered (("tma %x %x"), packet->payload.tma.ctc,
>+ packet->payload.tma.fc);
> break;
>
> case ppt_mtc:
>- printf_unfiltered (("mtc %x"), packet->payload.mtc.ctc);
>+ printf_filtered (("mtc %x"), packet->payload.mtc.ctc);
> break;
>
> case ppt_cyc:
>- printf_unfiltered (("cyc %" PRIx64 ""), packet->payload.cyc.value);
>+ printf_filtered (("cyc %" PRIx64 ""), packet->payload.cyc.value);
> break;
>
> case ppt_mnt:
>- printf_unfiltered (("mnt %" PRIx64 ""), packet->payload.mnt.payload);
>+ printf_filtered (("mnt %" PRIx64 ""), packet->payload.mnt.payload);
> break;
> }
> }
>@@ -3149,9 +3149,9 @@ btrace_maint_print_packets (struct btrace_thread_info
>*btinfo,
> {
> const btrace_block &block = blocks.at (blk);
>
>- printf_unfiltered ("%u\tbegin: %s, end: %s\n", blk,
>- core_addr_to_string_nz (block.begin),
>- core_addr_to_string_nz (block.end));
>+ printf_filtered ("%u\tbegin: %s, end: %s\n", blk,
>+ core_addr_to_string_nz (block.begin),
>+ core_addr_to_string_nz (block.end));
> }
>
> btinfo->maint.variant.bts.packet_history.begin = begin;
>@@ -3170,15 +3170,15 @@ btrace_maint_print_packets (struct
>btrace_thread_info *btinfo,
> {
> const struct btrace_pt_packet &packet = packets.at (pkt);
>
>- printf_unfiltered ("%u\t", pkt);
>- printf_unfiltered ("0x%" PRIx64 "\t", packet.offset);
>+ printf_filtered ("%u\t", pkt);
>+ printf_filtered ("0x%" PRIx64 "\t", packet.offset);
>
> if (packet.errcode == pte_ok)
> pt_print_packet (&packet.packet);
> else
>- printf_unfiltered ("[error: %s]", pt_errstr (packet.errcode));
>+ printf_filtered ("[error: %s]", pt_errstr (packet.errcode));
>
>- printf_unfiltered ("\n");
>+ printf_filtered ("\n");
> }
>
> btinfo->maint.variant.pt.packet_history.begin = begin;
>@@ -3256,7 +3256,7 @@ maint_btrace_packet_history_cmd (const char *arg, int
>from_tty)
> btrace_maint_update_packets (btinfo, &begin, &end, &from, &to);
> if (begin == end)
> {
>- printf_unfiltered (_("No trace.\n"));
>+ printf_filtered (_("No trace.\n"));
> return;
> }
>
>@@ -3398,8 +3398,8 @@ maint_info_btrace_cmd (const char *args, int from_tty)
> if (conf == NULL)
> error (_("No btrace configuration."));
>
>- printf_unfiltered (_("Format: %s.\n"),
>- btrace_format_string (conf->format));
>+ printf_filtered (_("Format: %s.\n"),
>+ btrace_format_string (conf->format));
>
> switch (conf->format)
> {
>@@ -3407,8 +3407,8 @@ maint_info_btrace_cmd (const char *args, int from_tty)
> break;
>
> case BTRACE_FORMAT_BTS:
>- printf_unfiltered (_("Number of packets: %zu.\n"),
>- btinfo->data.variant.bts.blocks->size ());
>+ printf_filtered (_("Number of packets: %zu.\n"),
>+ btinfo->data.variant.bts.blocks->size ());
> break;
>
> #if defined (HAVE_LIBIPT)
>@@ -3417,14 +3417,14 @@ maint_info_btrace_cmd (const char *args, int
>from_tty)
> struct pt_version version;
>
> version = pt_library_version ();
>- printf_unfiltered (_("Version: %u.%u.%u%s.\n"), version.major,
>- version.minor, version.build,
>- version.ext != NULL ? version.ext : "");
>+ printf_filtered (_("Version: %u.%u.%u%s.\n"), version.major,
>+ version.minor, version.build,
>+ version.ext != NULL ? version.ext : "");
>
> btrace_maint_update_pt_packets (btinfo);
>- printf_unfiltered (_("Number of packets: %zu.\n"),
>- ((btinfo->maint.variant.pt.packets == nullptr)
>- ? 0 : btinfo->maint.variant.pt.packets->size ()));
>+ printf_filtered (_("Number of packets: %zu.\n"),
>+ ((btinfo->maint.variant.pt.packets == nullptr)
>+ ? 0 : btinfo->maint.variant.pt.packets->size ()));
> }
> break;
> #endif /* defined (HAVE_LIBIPT) */
>diff --git a/gdb/record-btrace.c b/gdb/record-btrace.c
>index 108b3861446..c659d68e444 100644
>--- a/gdb/record-btrace.c
>+++ b/gdb/record-btrace.c
>@@ -506,7 +506,7 @@ record_btrace_print_bts_conf (const struct
>btrace_config_bts *conf)
> if (size > 0)
> {
> suffix = record_btrace_adjust_size (&size);
>- printf_unfiltered (_("Buffer size: %u%s.\n"), size, suffix);
>+ printf_filtered (_("Buffer size: %u%s.\n"), size, suffix);
> }
> }
>
>@@ -522,7 +522,7 @@ record_btrace_print_pt_conf (const struct
>btrace_config_pt *conf)
> if (size > 0)
> {
> suffix = record_btrace_adjust_size (&size);
>- printf_unfiltered (_("Buffer size: %u%s.\n"), size, suffix);
>+ printf_filtered (_("Buffer size: %u%s.\n"), size, suffix);
> }
> }
>
>@@ -531,8 +531,8 @@ record_btrace_print_pt_conf (const struct
>btrace_config_pt *conf)
> static void
> record_btrace_print_conf (const struct btrace_config *conf)
> {
>- printf_unfiltered (_("Recording format: %s.\n"),
>- btrace_format_string (conf->format));
>+ printf_filtered (_("Recording format: %s.\n"),
>+ btrace_format_string (conf->format));
>
> switch (conf->format)
> {
>@@ -602,14 +602,14 @@ record_btrace_target::info_record ()
> gaps = btinfo->ngaps;
> }
>
>- printf_unfiltered (_("Recorded %u instructions in %u functions (%u gaps) "
>- "for thread %s (%s).\n"), insns, calls, gaps,
>- print_thread_id (tp),
>- target_pid_to_str (tp->ptid).c_str ());
>+ printf_filtered (_("Recorded %u instructions in %u functions (%u gaps) "
>+ "for thread %s (%s).\n"), insns, calls, gaps,
>+ print_thread_id (tp),
>+ target_pid_to_str (tp->ptid).c_str ());
>
> if (btrace_is_replaying (tp))
>- printf_unfiltered (_("Replay in progress. At instruction %u.\n"),
>- btrace_insn_number (btinfo->replay));
>+ printf_filtered (_("Replay in progress. At instruction %u.\n"),
>+ btrace_insn_number (btinfo->replay));
> }
>
> /* Print a decode error. */
>@@ -938,9 +938,9 @@ record_btrace_target::insn_history (int size,
>gdb_disassembly_flags flags)
> else
> {
> if (size < 0)
>- printf_unfiltered (_("At the start of the branch trace record.\n"));
>+ printf_filtered (_("At the start of the branch trace record.\n"));
> else
>- printf_unfiltered (_("At the end of the branch trace record.\n"));
>+ printf_filtered (_("At the end of the branch trace record.\n"));
> }
>
> btrace_set_insn_history (btinfo, &begin, &end);
>@@ -1295,9 +1295,9 @@ record_btrace_target::call_history (int size,
>record_print_flags flags)
> else
> {
> if (size < 0)
>- printf_unfiltered (_("At the start of the branch trace record.\n"));
>+ printf_filtered (_("At the start of the branch trace record.\n"));
> else
>- printf_unfiltered (_("At the end of the branch trace record.\n"));
>+ printf_filtered (_("At the end of the branch trace record.\n"));
> }
>
> btrace_set_call_history (btinfo, &begin, &end);
>@@ -3037,11 +3037,11 @@ cmd_show_record_btrace_cpu (const char *args, int
>from_tty)
> switch (record_btrace_cpu_state)
> {
> case CS_AUTO:
>- printf_unfiltered (_("btrace cpu is 'auto'.\n"));
>+ printf_filtered (_("btrace cpu is 'auto'.\n"));
> return;
>
> case CS_NONE:
>- printf_unfiltered (_("btrace cpu is 'none'.\n"));
>+ printf_filtered (_("btrace cpu is 'none'.\n"));
> return;
>
> case CS_CPU:
>@@ -3049,14 +3049,14 @@ cmd_show_record_btrace_cpu (const char *args, int
>from_tty)
> {
> case CV_INTEL:
> if (record_btrace_cpu.stepping == 0)
>- printf_unfiltered (_("btrace cpu is 'intel: %u/%u'.\n"),
>- record_btrace_cpu.family,
>- record_btrace_cpu.model);
>+ printf_filtered (_("btrace cpu is 'intel: %u/%u'.\n"),
>+ record_btrace_cpu.family,
>+ record_btrace_cpu.model);
> else
>- printf_unfiltered (_("btrace cpu is 'intel: %u/%u/%u'.\n"),
>- record_btrace_cpu.family,
>- record_btrace_cpu.model,
>- record_btrace_cpu.stepping);
>+ printf_filtered (_("btrace cpu is 'intel: %u/%u/%u'.\n"),
>+ record_btrace_cpu.family,
>+ record_btrace_cpu.model,
>+ record_btrace_cpu.stepping);
> return;
> }
> }
>--
>2.31.1
Intel Deutschland GmbH
Registered Address: Am Campeon 10, 85579 Neubiberg, Germany
Tel: +49 89 99 8853-0, www.intel.de <http://www.intel.de>
Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva
Chairperson of the Supervisory Board: Nicole Lau
Registered Office: Munich
Commercial Register: Amtsgericht Muenchen HRB 186928
More information about the Gdb-patches
mailing list