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)
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.