2017-06-21 105 views
0
#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。我该怎么做?如何使用gdb设置std :: map变量?

+0

_didn't work_不是有用的错误描述。请以[mcve]的形式在您的代码中编辑,包括您收到的任何编译器/链接器错误或与预期不同的行为。 – Tas

回答

0

可以使用GDB设置命令设置的值

GDB模式 modifying_command :设置[变量]表达

下面的例子显示了如何将值5沉积到C的数据成员++变量: GDB模式

(idb) print kv[1] 

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

我正在尝试使用set变量kv [1] = 5,但它告诉无法找到运算符[]。它有什么问题? –

+0

尝试使用内存集{int} 0x83040 = 5 –

+0

谢谢,它的工作原理。 –