回答
从SVN
svn://gcc.gnu.org/svn/gcc/trunk/libstdc++-v3/python
获取蟒蛇观众以下内容添加到您的~/.gdbinit
python
import sys
sys.path.insert(0, '/path/to/pretty-printers/dir')
from libstdcxx.v6.printers import register_libstdcxx_printers
register_libstdcxx_printers (None)
end
然后打印应该只是工作:
std::map<int, std::string> the_map;
the_map[23] = "hello";
the_map[1024] = "world";
在GDB:
(gdb) print the_map
$1 = std::map with 2 elements = { [23] = "hello", [1024] = "world" }
要回到旧视图使用print /r
(/r
为原料)。
可能的重复以及如何实际在GDB中使用它来打印内容?有什么需要设置。 thx – vehomzzz 2010-03-23 12:18:47
一旦加载代码在.gdbinit中,那么打印应该只是工作,回到旧的视图,你做一个打印/ r(/ r是原始的) (格式显然很糟糕,我的道歉) std :: map
考虑修改您的答案,包括您的评论此信息。这种格式不会太糟糕。 – camh 2010-04-21 13:18:14
的libstdcxx_printers包括最近版本的GCC,所以如果你使用GCC 4.5以后,那么你不需要做任何事情,漂亮的打印工作的很好。
(gdb) p v
$1 = std::vector of length 3, capacity 3 = {std::set with 3 elements = {
[0] = 1, [1] = 2, [2] = 3}, std::set with 2 elements = {[0] = 12,
[1] = 13}, std::set with 1 elements = {[0] = 23}}
(gdb) p v[1]
$2 = std::set with 2 elements = {[0] = 12, [1] = 13}
要禁用漂亮的印刷使用p/r
或print/r
获得“原始”输出。
- 1. 如何使用GDB调试器查看__asm__内容?
- 2. 通过gdb观看stl向量的内容
- 3. 查看Cookie容器包含的内容?
- 4. MEF并查看容器中的内容
- 5. 如何查看blob内容
- 6. STL:容器的容器
- 7. 查看内容
- 8. 内容查看器Android
- 9. 如何查看DbgPrint的内容?
- 10. STL容器内存问题
- 11. 别名未使用修改STL容器的实际内容
- 12. 同时使用STL容器
- 13. 如何查看查询表的内容
- 14. 如何在GDB中漂亮地打印STL容器?
- 15. stl兼容的容器
- 16. GDB:漂亮的打印类包含STL容器
- 17. 的UITableViewCell的内容查看的内容不可见使用UISearchDisplayController
- 18. 如何查看Github用户内容?
- 19. Android:如何使用调试器查看数组内容
- 20. Liferay:如何从网页内容中使用PDF查看器
- 21. 使用STL容器UPPER_BOUND&LOWER_BOUND在地图
- 22. C++ STL容器
- 23. jsPDF:查看PDF的内容
- 24. ADBanner查看内容
- 25. 内容查看ViewModelLocator.AutowireViewModel
- 26. 如何在default.aspx中查看内容占位符的内容?
- 27. 如何使用icc编译器检查gdb中std :: vector的内容?
- 28. 如何查看chrome中的IndexedDB内容?
- 29. 如何查看FactoryGirl输出的内容?
- 30. 如何查看Body Tag的内容?
gdb的数字版本是你在谈论 – 2010-03-22 12:12:05
7及以上版本。谢谢。 – vehomzzz 2010-03-22 12:17:38
[如何漂亮地打印GDB中的STL容器?](https://stackoverflow.com/questions/11606048/how-to-pretty-print-stl-containers-in-gdb) – 2017-09-24 10:25:55