gdb map打印

在 GDB 中,你可以使用 info address 命令来查看变量或函数的地址,然后使用 x 命令来打印从该地址开始的内存内容。下面是一些使用 info address x 命令打印 map 变量的示例:

假设我们有以下定义的 map 变量:

std::map<int, std::string> map;
  • 打印 map 变量的地址
  • 使用 info address 命令打印 map 变量的地址,示例:

    (gdb) p &map
    $1 = (std::map<int, std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::less<int>, std::allocator<std::pair<const int, std::basic_string<char, std::char_traits<char>, std::allocator<char> > > > > *) 0x7fffffffe008
    
  • 打印 map 变量的内容
  • 使用 x 命令打印从 map 变量的地址开始的内存内容,示例:

    (gdb) x/10xg 0x7fffffffe008
    0x7fffffffe008: 0x00007ffff7b3f3d0  0x0000000000000000
    0x7fffffffe018: 0x00007fffffffe2a8  0x0000000000000000
    0x7fffffffe028: 0x00007fffffffe258  0x0000000000000000
    0x7fffffffe038: 0x0000000000000000  0x0000000000000000
    0x7fffffffe048: 0x0000000000000000  0x0000000000000000
    

    注意,我们使用 x/10xg 命令来打印 map 变量的前 10 个地址,每个地址打印 8 个字节的十六进制内容。由于 map 变量的实现可能不同,实际打印的内容可能会有所不同。

    希望这些信息能帮到你,如果你还有其他问题,可以继续提问。

  • 4年前
  •