Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
gdb magic sauce是否列出位集的内容?实际上,这是我唯一的包装_Gdb - Fatal编程技术网

gdb magic sauce是否列出位集的内容?实际上,这是我唯一的包装

gdb magic sauce是否列出位集的内容?实际上,这是我唯一的包装,gdb,Gdb,[像蝙蝠一样瞎,看不到树木的独特之处] 因此,如果我要求gdbp位集,它会很有帮助地告诉我 $1 = std::unique_ptr<std::bitset<500000ul>> containing 0x67df80 和x/8b 0x0067e2b0 0x67e2b0: 0xb7 0x00 0x00 0x00 0x00 0x00 0x00 0x00 是否有一种神奇的组合可以让它[命令]全部集中在一行,即可重用 挖

[像蝙蝠一样瞎,看不到树木的独特之处]

因此,如果我要求gdb
p位集
,它会很有帮助地告诉我

$1 = std::unique_ptr<std::bitset<500000ul>> containing 0x67df80
x/8b 0x0067e2b0

0x67e2b0:       0xb7    0x00    0x00    0x00    0x00    0x00    0x00    0x00
是否有一种神奇的组合可以让它[命令]全部集中在一行,即可重用

挖掘源代码提供了成员变量_M_w

但是
p位集。_M_w
只返回

There is no member or method named _M_w
是否有一个神奇的组合,将所有的东西都放在一条线上,即可重复使用

现在还不清楚“一行上的所有”是什么意思(您的输出已经全部在一行上),或者您所说的可重用是什么意思

还不清楚为什么要用字节来检查位集(而不是
int
s或
long
s)

安装了GDB libstdc++pretty打印机后,此程序:

#include <bitset>

int main()
{
  std::bitset<5> b5;
  std::bitset<5000> b5000;

  b5[1] = 1;
  b5000[1] = 1;
  b5000[50] = 1;

  return 0;
}
更新:

目前我只看到包含0x67df80的
$1=std::unique\u ptr

0x67df80:       0x0067e2b0
这是因为您的问题不是打印
std::bitset
,而是打印
std::unique\u ptr
。你想取消对它的引用

(很抱歉,我在第一次阅读时错过了这个,现在很明显,你的主题与你的实际问题不符。)

这样修改示例:

#include <bitset>
#include <memory>

int main()
{
  auto b5 = std::make_unique<std::bitset<5>>();

  (*b5)[1] = 1;

  return 0;
}

也许我需要硫色印字机,谢谢:那可能是我的神奇酱汁。目前,我只看到包含0x67df80的
$1=std::unique\u ptr
,这是非常无用的,但显然正在采取措施来实现这一点。
#include <bitset>
#include <memory>

int main()
{
  auto b5 = std::make_unique<std::bitset<5>>();

  (*b5)[1] = 1;

  return 0;
}
(gdb) p b5
$1 = std::unique_ptr<std::bitset<5>> containing 0x613c20
(gdb) p *b5
$2 = std::bitset = {[1] = 1}
(gdb) p b5._M_t._M_t._M_head_impl->_M_w
$3 = 2