c++ - 在 gdb 调试器中重复 n 次是什么意思?
问题描述
例如:
bool plugin::checkQuality(string &text)
{
string temp = normalizeContent(text, 1);
map<string, int> mapWords;
matchWords(temp.c_str(), mapWords);
...
}
一旦 gdb 进入这个函数,我可以看到这个值:
plugin::checkQuality (this=0x7fffffffd9c0,
text="This is a test", ' ' <repeats 20 times>, "c,,,,")
at /mod/filter/plugin.cpp:59
第二个参数 <repeats 20 times> 是什么意思?第三个参数“c,,,”是什么?函数不是只有一个参数吗?
解决方案
这只是 GDB 如何在一个数组中打印超过 10 个连续相同元素的默认行为。从文档
当数组的连续相同元素的数量超过阈值时,GDB 会打印字符串“<repeats n times>”,其中 n 是相同重复的数量,而不是显示相同的元素本身。
所以在你的例子中,参数的值text
似乎是
"This is a test c,,,,"
您可以设置在打印之前需要重复多少个字符的阈值
set print repeats <number-of-repeats>
推荐阅读
- java - 带有参数化方法的工厂模式
- iis - 经典 Asp - Server.Transfer 到父路径 - 是否可能
- go - Go:没有对包进行测试时的错误覆盖率
- sql - 游标/递归是这里唯一可能的选择吗?根据某些滞后条件设置基于逻辑
- javascript - 使用全局变量来防止代码不必要地重复执行
- ruby-on-rails - Rails - 在同一页面上呈现活动部分?
- blazor - 检查是否设置了 EventCallback Blazor
- c++ - C++函数模板实参推导指南
- git - 恢复文件:错误:路径“app/controllers/conversations_controller.rb”未合并
- phoenix-framework - 如何使用 Phoenix 自定义布局呈现错误 404?