aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonathan Wakely <jwakely@redhat.com>2025-05-09 11:39:39 +0100
committerJonathan Wakely <redi@gcc.gnu.org>2025-05-12 09:46:36 +0100
commita341d96add049e1ebc94e7350ff59e82b03043d2 (patch)
treed657fcbec5e654dc6b053adc457abcef6e7457c9
parentfc135d41b1eb6a1736ac680d1928387b38db5193 (diff)
downloadgcc-a341d96add049e1ebc94e7350ff59e82b03043d2.zip
gcc-a341d96add049e1ebc94e7350ff59e82b03043d2.tar.gz
gcc-a341d96add049e1ebc94e7350ff59e82b03043d2.tar.bz2
libstdc++: Suppress GDB output from new 'skip' commands [PR118260]
I added some gdb.execute('skip -rfu ...') commands to the Python hook loaded with libstdc++.so but this makes GDB print output like: Function(s) ^std::(move|forward|as_const|(__)?addressof) will be skipped when stepping. This probably aren't interesting to users, so this change suppresses that output by capturing the output into the gdb.execute return value (which is then ignored). An exception is thrown if the gdb.execute command fails, so this doesn't suppress any errors which might be meaningful to users or libstdc++ developers. libstdc++-v3/ChangeLog: PR libstdc++/118260 * python/hook.in: Suppress output from gdb.execute calls to register skips. Reviewed-by: Tomasz KamiƄski <tkaminsk@redhat.com> (cherry picked from commit 31cbac3037b7811bd0df63f4a09aa981b250c4bf)
-rw-r--r--libstdc++-v3/python/hook.in12
1 files changed, 8 insertions, 4 deletions
diff --git a/libstdc++-v3/python/hook.in b/libstdc++-v3/python/hook.in
index d63909d..74a097c 100644
--- a/libstdc++-v3/python/hook.in
+++ b/libstdc++-v3/python/hook.in
@@ -55,10 +55,14 @@ if gdb.current_objfile () is not None:
if not dir_ in sys.path:
sys.path.insert(0, dir_)
- gdb.execute('skip -rfu ^std::(move|forward|as_const|(__)?addressof)')
- gdb.execute('skip -rfu ^std::(shared|unique)_ptr<.*>::(get|operator)')
- gdb.execute('skip -rfu ^std::(basic_string|vector|array|deque|(forward_)?list|(unordered_|flat_)?(multi)?(map|set)|span)<.*>::(c?r?(begin|end)|front|back|data|size|empty)')
- gdb.execute('skip -rfu ^std::(basic_string|vector|array|deque|span)<.*>::operator.]')
+ gdb.execute('skip -rfu ^std::(move|forward|as_const|(__)?addressof)',
+ to_string=True)
+ gdb.execute('skip -rfu ^std::(shared|unique)_ptr<.*>::(get|operator)',
+ to_string=True)
+ gdb.execute('skip -rfu ^std::(basic_string|vector|array|deque|(forward_)?list|(unordered_|flat_)?(multi)?(map|set)|span)<.*>::(c?r?(begin|end)|front|back|data|size|empty)',
+ to_string=True)
+ gdb.execute('skip -rfu ^std::(basic_string|vector|array|deque|span)<.*>::operator.]',
+ to_string=True)
# Call a function as a plain import would not execute body of the included file
# on repeated reloads of this object file.