[gcc r12-2932] libstdc++: Install GDB pretty printers for debug library
Jonathan Wakely
redi@gcc.gnu.org
Mon Aug 16 16:52:43 GMT 2021
https://gcc.gnu.org/g:db853ff78a34fef25bc16133e0367a64526f9f4e
commit r12-2932-gdb853ff78a34fef25bc16133e0367a64526f9f4e
Author: Jonathan Wakely <jwakely@redhat.com>
Date: Thu Aug 12 19:56:14 2021 +0100
libstdc++: Install GDB pretty printers for debug library
The additional libraries installed by --enable-libstdcxx-debug are built
without optimization to aid debugging, but the Python pretty printers
are not installed alongside them. This means that you can step through
the unoptimized library code, but at the expense of pretty printing the
library types.
This remedies the situation by installing another copy of the GDB hooks
alongside the debug version of libstdc++.so.
Signed-off-by: Jonathan Wakely <jwakely@redhat.com>
libstdc++-v3/ChangeLog:
* python/Makefile.am [GLIBCXX_BUILD_DEBUG] (install-data-local):
Install another copy of the GDB hook.
* python/Makefile.in: Regenerate.
Diff:
---
libstdc++-v3/python/Makefile.am | 12 +++++++++++-
libstdc++-v3/python/Makefile.in | 8 +++++++-
2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/libstdc++-v3/python/Makefile.am b/libstdc++-v3/python/Makefile.am
index 8efefa5725c..bc4a26651d8 100644
--- a/libstdc++-v3/python/Makefile.am
+++ b/libstdc++-v3/python/Makefile.am
@@ -29,6 +29,12 @@ else
pythondir = $(datadir)/gcc-$(gcc_version)/python
endif
+if GLIBCXX_BUILD_DEBUG
+debug_gdb_py = YES
+else
+debug_gdb_py =
+endif
+
all-local: gdb.py
nobase_python_DATA = \
@@ -53,4 +59,8 @@ install-data-local: gdb.py
$(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
fi; \
echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
- $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
+ $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py ; \
+ if [ -n "$(debug_gdb_py)" ]; then \
+ sed "/^libdir = /s;'$$;/debug';" gdb.py > debug-gdb.py ; \
+ $(INSTALL_DATA) debug-gdb.py $(DESTDIR)$(toolexeclibdir)/debug/$$libname-gdb.py ; \
+ fi
diff --git a/libstdc++-v3/python/Makefile.in b/libstdc++-v3/python/Makefile.in
index 9904a9197de..b3b56c41597 100644
--- a/libstdc++-v3/python/Makefile.in
+++ b/libstdc++-v3/python/Makefile.in
@@ -403,6 +403,8 @@ WARN_CXXFLAGS = \
AM_CPPFLAGS = $(GLIBCXX_INCLUDES) $(CPPFLAGS)
@ENABLE_PYTHONDIR_FALSE@pythondir = $(datadir)/gcc-$(gcc_version)/python
@ENABLE_PYTHONDIR_TRUE@pythondir = $(prefix)/$(python_mod_dir)
+@GLIBCXX_BUILD_DEBUG_FALSE@debug_gdb_py =
+@GLIBCXX_BUILD_DEBUG_TRUE@debug_gdb_py = YES
nobase_python_DATA = \
libstdcxx/v6/printers.py \
libstdcxx/v6/xmethods.py \
@@ -614,7 +616,11 @@ install-data-local: gdb.py
$(DESTDIR)$(toolexeclibdir)/libstdc++.la`; \
fi; \
echo " $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py"; \
- $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py
+ $(INSTALL_DATA) gdb.py $(DESTDIR)$(toolexeclibdir)/$$libname-gdb.py ; \
+ if [ -n "$(debug_gdb_py)" ]; then \
+ sed "/^libdir = /s;'$$;/debug';" gdb.py > debug-gdb.py ; \
+ $(INSTALL_DATA) debug-gdb.py $(DESTDIR)$(toolexeclibdir)/debug/$$libname-gdb.py ; \
+ fi
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
More information about the Libstdc++-cvs
mailing list