【问题标题】:How can I set std::map variable with gdb?如何使用 gdb 设置 std::map 变量?
【发布时间】:2017-06-21 03:29:23
【问题描述】:
#include<map>
#include<iostream>
using std::map;
using std::cout;
int main(int argc,char* argv[])
{
    map<int,int> kv({{1,1},{2,2},{3,3}});
    kv[1]=2;
    cout<<kv[1];
    return 0;
}

我从 GDB 开始并在 kv[1]=2 中断。执行kv[1]=2 后,我想在GDB 中设置kv[1]=3。我该怎么做?

【问题讨论】:

  • 没有工作 不是有用的错误描述。请以minimal reproducible example 的形式在您的代码中edit,包括您收到的任何编译器/链接器错误或与预期不同的行为。

标签: c++ stl gdb


【解决方案1】:

你可以使用 GDB set 命令来设置值

GDB 模式 修改命令 : 设置 [变量] 表达式

以下示例显示如何将值 5 存入 C++ 变量的数据成员: GDB模式

(idb) print kv[1]

(idb) set variable {int}0x82040 = 5  //82040 is memory address

【讨论】:

  • 我正在尝试使用设置变量 kv[1] = 5,但它告诉我找不到运算符 []。这是怎么回事?
  • 尝试使用内存集 {int}0x83040 = 5
  • @Davis-King 欢迎
猜你喜欢
  • 2011-01-30
  • 2019-08-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-17
  • 2010-09-30
  • 1970-01-01
相关资源
最近更新 更多