[gdb/cli] Add maintenance ignore-probes
authorTom de Vries <tdevries@suse.de>
Sat, 31 Dec 2022 09:23:06 +0000 (10:23 +0100)
committerTom de Vries <tdevries@suse.de>
Sat, 31 Dec 2022 09:23:06 +0000 (10:23 +0100)
commit08c59458a106038c6d678621e7290948127671e2
tree64912d2f4d83b4eda9fcfe45b757a8063f5ad57b
parenta667697f36ef4f910e09c4a02f34a44fa3e86157
[gdb/cli] Add maintenance ignore-probes

There's a command "disable probes", but SystemTap probes, for instance
libc:longjmp cannot be disabled:
...
$ gdb -q -batch a.out -ex start -ex "disable probes libc ^longjmp$"
  ...
Probe libc:longjmp cannot be disabled.
Probe libc:longjmp cannot be disabled.
Probe libc:longjmp cannot be disabled.
...

Add a command "maintenance ignore-probes" that ignores probes during
get_probes, such that we can easily pretend to use a libc without the
libc:longjmp probe:
...
(gdb) maint ignore-probes -verbose libc ^longjmp$
ignore-probes filter has been set to:
PROVIDER: 'libc'
PROBE_NAME: '^longjmp$'
OBJNAME: ''
(gdb) start ^M
  ...
Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M
Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M
Ignoring SystemTap probe libc longjmp in /lib64/libc.so.6.^M
...

The "Ignoring ..." messages can be suppressed by not using -verbose.

Note that as with "disable probes", running simply "maint ignore-probes"
ignores all probes.

The ignore-probes filter can be reset by using:
...
(gdb) maint ignore-probes -reset
ignore-probes filter has been reset
...

For now, the command is only supported for SystemTap probes.

PR cli/27159
Bug: https://sourceware.org/bugzilla/show_bug.cgi?id=27159
gdb/doc/gdb.texinfo
gdb/probe.c
gdb/probe.h
gdb/stap-probe.c