c++ - 从 macports (macOS) 安装 gcc 8 的 gdb libstdc++ 漂亮打印机中的错误
问题描述
我按照GDB Wiki中的描述设置了 gdb libstdc++ 漂亮打印机。但是漂亮的打印不起作用,gdb 一直在打印原始数据。
我更改了printers.py来修复它:
--- python/libstdcxx/v6/printers.py.old 2018-10-13 13:57:11.000000000 +0300
+++ python/libstdcxx/v6/printers.py 2018-10-13 14:35:55.000000000 +0300
@@ -1306,2 +1306,4 @@
def add(self, name, function):
+ if (name.startswith('std::')):
+ self.add(name[5:], function)
# A small sanity check.
该补丁使打印机能够平等地处理 std::xxx 和 xxx(例如 std::vector 和 vector)。补丁有帮助!
为什么有帮助?错误在哪里?使用通过 macports 安装的 gdb 8.0.1、gcc 8.2.0。
解决方案
这是OS X 上的一个已知问题,但我无法自己调试它,因为我不使用 OS X。
该问题似乎与 GCC 输出到 OS X 二进制文件的调试信息有关。在 OS X 上,调试信息中显示的类型与漂亮的打印机所期望的不匹配。
推荐阅读
- javascript - select2: items added programatically have no text
- python - Python Checking the beginning of a line for an ip address
- python - 等待dynamodb创建表,避免Requested resource not found
- python - My list prints out the Objects instead of the values
- python-3.x - Reshaping 1-D Data to 2-D Data for Matplotlib Pcolormesh
- php - PHP parse array to get index wise result
- python - Scrapy - multiple spiders - processing data from one spider while other are still running
- apache-spark - PySpark 中的 ModuleNotFoundError 在 serializers.py 中引起
- python - bad key error occurred when tried to fetch data from api endpoint in python?
- apache-flink - Supported data types in Flink SQL